[ top ] [ prev ] [ up ] [ next ]
Phi::DateTime
Apollo(Delphi) で使用する標準的な日付+時間のクラス。
super class
Object
included modules
Comparable
class methods
- new
-
- now
-
- 引数がない場合
-
現在時刻となります。
- 引数がひとつの場合
-
文字列の場合には "yyyy/mm/dd hh:mm:ss" の形式を指定できます。ミリ秒は指定できません。"hh" 以降は省略可能で、省略した場合には0とみなされます。
Time Date オブジェクトを指定した場合には相当の時刻に変換して作成します。 Date の時刻は 00:00:00 になります。
- 引数が2個以上の場合
-
yyyy,mm,dd, hh,MM,ss,zz の順になります。hh 以降は省略可能です。ミリ秒も指定できます。
- today
-
今日の日付を返します。DateTime.now.date と同じです。
methods
- year : Fixnum
-
- year=
-
年の部分。出し入れ可能。
- month : Fixnum
-
- month=
-
月の部分。出し入れ可能。
- day : Fixnum
-
- day=
-
日の部分。出し入れ可能。
- hour : Fixnum
-
- hour=
-
時の部分。出し入れ可能。
- minute : Fixnum
-
- minute=
-
分の部分。出し入れ可能。
- second : Fixnum
-
- second=
-
秒の部分。出し入れ可能。
- msec : Fixnum
-
- msec=
-
ミリ秒の部分。出し入れ可能。
- +
-
日付を1日増加させた DateTime を返す。
小数点部分がある場合には、1.0/(24*60*60*1000) で1ミリ秒を表す。
- -
-
日付を1日減少させた DateTime を返す。
小数点部分がある場合には、1.0/(24*60*60*1000) で1ミリ秒を表す。
- <
-
- <=
-
- <=>
-
- >
-
- >=
-
- ==
-
時刻を比較する。
右側がString、Time または Date の場合には DateTime に変換して比較する。
* 注意:DateTime に変換するのは DateTime が左側にある場合だけです。右側にある場合には変換しません。左が文字列で右が DateTime の場合には文字列として比較されてしまい、結果として誤った結果になります。
- ===
-
- =~
-
検討中。使わないでください。(「所属する」という意味なので DateTime.new("2001/2/3") === 2001)とかDateTime.new("2001/2/3") === [2001,2])とかを判断すべきか?)。
- between?
-
時刻が指定された範囲にあるかを調べる。
文字列等も使用可能。
- date
-
日付部分で構成される DateTime インスタンスを返す。
- day_of_week
-
曜日を数字で返す。1:日曜日〜7:土曜日。
- end_of_month
-
その日付が含む月末の 23:59:59.999 の DateTime を返す。
- end_of_year
-
その日付が含む年末の 23:59:59.999 の DateTime を返す。
- format
-
書式にしたがって文字列にします。
- inc_month
-
月の部分を増減した DateTime を返します。
日付が月末を越えた場合には月末の日付になります。DateTime.new("2001/1/31").inc_month(1) => "2001/2/28"。
- jd
-
ユリウス日を返します。ユリウス日というのは天文学で使われる日付で、xxの正午を0.0 とした通算日数です。小数点部分に時刻を含います。Date クラスからの変換で使用しています。
- time
-
時刻部分の DateTime を返します。
日付部分が0の DateTime は xx の日付の意味にもなるので、注意してください。
- time_t
-
Unix の time_t 相当の値を返します。Time クラスからの変換で使用しています。
- to_a
-
[y,m,d, h,M,s,z]という配列を返します。
- to_s
-
Phi.date_format グローバル変数で指定された形式の日付の後に,Phi.time_format グローバル変数で指定された形式の時刻が続く。DateTime 値の小数部分がゼロの場合,時刻は表示されない。
デフォルトでは "yyyy/mm/dd hh:mm:ss" の書式で変換します。
注意:DateTime.now にはミリ秒部分を含んでいるので、デフォルトで文字列にした後に DateTime に戻して比較するとイコールになりません。format("yyyy/mm/dd hh:mm:ss.zzz")で文字列に変換すれば正確です。
functions
- Phi.date_separator
-
- Phi.date_separator=
-
- Phi.time_separator
-
- Phi.time_separator=
-
文字列を DateTime に変換するときの日付区切り("/")、時刻区切り(":")です。
- Phi.date_format
-
- Phi.date_format=
-
- Phi.time_format
-
- Phi.time_format=
-
DateTime を文字列に変換するとき(to_s)のデフォルトの書式です。
デフォルトの内容は次の通り。
date_format = "yyyy/mm/dd"
time_format = "hh:mm:dd"
- Phi.short_date_format
-
- Phi.short_date_format=
-
- Phi.short_time_format
-
- Phi.short_time_format=
-
- Phi.long_date_format
-
- Phi.long_date_format=
-
- Phi.long_time_format
-
- Phi.long_time_format=
-
constants
- Phi::LOCAL_TIME_DIFF
-
ローカルタイムと世界標準時との差を
Float
で返します。 DateTime#now はローカルタイム(日本標準時)を返しますので,世界標準時を求めるにはローカルタイムから LOCAL_TIME_DIFF
を差し引けば ok 。
require "phi" ; include Phi
local = DateTime.now
global = local - LOCAL_TIME_DIFF
p Phi::LOCAL_TIME_DIFF ## 0.375
p local ## #<Phi::DateTime: 2001/04/22 01:05:36>
p global ## #<Phi::DateTime: 2001/04/21 16:05:36>
format
- 指定子
-
表示内容
- aaa
-
曜日を日本語の省略形(日〜土)で表示する
- aaaa
-
曜日を日本語(日曜日〜土曜日)で表示する
- c
-
Phi.date_format グローバル変数で指定された形式の日付の後に,Phi.time_format グローバル変数で指定された形式の時刻が続く。DateTime 値の小数部分がゼロの場合,時刻は表示されない
- Phi.date_format == Phi.short_date_format , Phi.time_format == Phi.long_time_format
となっています。
- d
-
日付を先頭のゼロなしで表示する(1 から 31 まで)
- dd
-
日付を先頭のゼロも含めて表示する(01 から 31 まで)
- ddd
-
ShortDayNames グローバル変数で指定された文字列を使って,曜日を省略形(日〜土)で表示する
- dddd
-
LongDayNames グローバル変数で与えられた文字列を使って,曜日を完全形(日曜日〜土曜日)で表示する
- ddddd
-
Phi.short_date_format グローバル変数で与えられた形式で日付を表示する
- dddddd
-
Phi.long_date_format グローバル変数で与えられた形式で日付を表示する
- e
-
元号に基づく和暦の年を 0 を付けずに表示する(1995 年ならば 7)
- ee
-
元号に基づく和暦の年を 2 桁で表示する(1995 年ならば 07)
- g
-
元号の先頭 1 文字を表示する(明,大,昭,平)。2.0 では,英字で表現された先頭 1 文字でしたが,このバージョンで変更されています。
- gg
-
元号を表示する(明治,大正,昭和,平成)。2.0 では,元号の先頭 1 文字を表しましたが,このバージョンで変更されています。
- ggg
-
元号を表示する(明治,大正,昭和,平成)
- m
-
先頭にゼロのない数字(1〜12)として月を表示する。h 指定子または hh 指定子の直後に m 指定子を指定すると,月ではなく分が表示される
- mm
-
先頭にゼロのある数字(01〜12)として月を表示する。h 指定子または hh 指定子の直後に mm 指定子を指定すると,月ではなく分が表示される
- mmm
-
ShortMonthNames グローバル変数で与えられた文字列を使って,月を省略形(1〜12)で表示する
- mmmm
-
LongMonthNames グローバル変数で与えられた文字列を使って,月を完全形(1月〜12月)で表示する
- yy
-
年を 2 桁の数字(00〜99)で表示する
- yyyy
-
年を 4 桁の数字(0000〜9999)で表示する
- h
-
先頭にゼロのない数字(0〜23)として時を表示する
- hh
-
先頭にゼロのある数字(00〜23)として時を表示する
- n
-
先頭にゼロのない数字(0〜59)として分を表示する
- nn
-
先頭にゼロのある数字(00〜59)として分を表示する
- s
-
先頭にゼロのない数字(0〜59)として秒を表示する
- ss
-
先頭にゼロのある数字(00〜59)として秒を表示する
- zzz
-
先頭にゼロのある数字(000-999)としてミリ秒を表示する
- t
-
Phi.short_time_format グローバル変数で与えられた形式で時刻を表示する
- tt
-
Phi.long_time_format グローバル変数で与えられた形式で時刻を表示する
- am/pm
-
先行する h 指定子または hh 指定子に 12 時間形式の時刻値を使い,正午以前の時間には am を,正午以降の時間には pm を表示する。am/pm 指定子には,大文字,小文字,大文字と小文字の両方が使え,指定のとおりに結果が表示される
- a/p
-
先行する h 指定子または hh 指定子に 12 時間形式の時刻値を使い,正午以前の時間には a を,正午以降の時間には p を表示する。a/p 指定子には,大文字,小文字,大文字と小文字の両方が使え,指定のとおりに結果が表示される
- ampm
-
先行する h 指定子または hh 指定子に 12 時間形式の時刻値を使い,正午以前の時間には TimeAMString グローバル変数の値を,正午以降の時間には TimePMString グローバル変数の値を表示する
- /
-
Phi.date_separator グローバル変数で与えられた日付区切り文字を表示する
- :
-
Phi.time_separator グローバル変数で与えられた時刻区切り文字を表示する
- 'xx' / "xx"
-
単引用符または二重引用符で囲まれた文字はそのまま表示され,形式には影響を与えない
形式指定子には大文字でも小文字でも使えます。どちらを使っても同じ結果になります。
- 以下のものは使わない方が無難です。
- Delphi のヘルプの「zz」記述に誤りがある模様。2桁になるので、"ss.zz"とすると誤った値になる。
- z
-
先頭にゼロのない数字(0-999)としてミリ秒を表示する
- zz
-
先頭にゼロのある数字(000-999)としてミリ秒を表示する
[ top ] [ prev ] [ up ] [ next ]