<< Click to Display Table of Contents >> 日時書式のオプションとプロパティ |
日時書式のオプションとプロパティについて
日時書式には、「オプション」と「プロパティ」が用意されています。これらを使用する場面は、以下のとおりです。
•日時書式の指定時 ・・・オプションとプロパティを指定可能
•ユーザー書式の定義時 ・・・プロパティを指定可能
■日時書式のオプション指定
日時書式を指定する際、以下の書式によってオプションとプロパティを指定することができます。
@日時書式名.オプション書式[.オプション書式][.オプション書式]... <プロパティ書式>
オプションの指定方法としては、@DATETIMEなどの日時書式名の後に、ドット文字「.」区切りで任意のオプション書式を付加します。
また、日時書式のオプション書式では、 @DATETIME.オプション書式.オプション書式.オプション書式 のように、複数のオプションを列挙することができます。
さらに、日時書式の末尾に、<プロパティ=設定値> としてプロパティ書式を指定すことで、タイムゾーン(TimeZone)などのプロパティを変更することができます。複数のプロパティを指定する場合は、<プロパティ1=設定値;プロパティ2=設定値;プロパティ3=設定値>のように、プロパティ単位でセミコロンで区切って指定します。
日時書式の指定例:
@DATETIME ※オプションを指定しない例
2017/02/18 16:56:20
@DATETIME.D
2017/02/18 ・・・オプション指定により年月日のみ表示
@DATETIME.T.D
16:56:20 2017/02/18 ・・・オプションで指定した順に従い、時刻 日付と表示
@DATETIME.DT<TimeZone=US Eastern Standard Time>
2017/02/18 02:56:20 ・・・プロパティ指定によるタイムゾーン変更
@DATETIME.%YmdHMSps<AM=am.;PM=pm.;DTSep=^;TZ=US Eastern Standard Time>
2017/02/18^02:56:20 am. ・・・オプションとプロパティの指定による独自の書式表示
書式を指定する際に複数のオプションを指定する場合、「.D.T」などのようにピリオドで区切って複数列挙することができます。 尚、この場合、列挙するオプションの間にスペース文字を入れないようにしてください(「.D .T」などは不可)。 |
書式を指定する際に複数のプロパティを指定する方法として、<プロパティ1=設定値;プロパティ2=設定値;プロパティ3=設定値>のようにプロパティ単位でセミコロンで区切る方法の他に、<プロパティ1=設定値><プロパティ2=設定値><プロパティ3=設定値>・・・のように、<>の組を列挙して指定することもできます。 尚、<>の組を列挙する場合、<>と<>の間には文字を入れないようにしてください(スペースも不可)。 |
■ユーザー書式の定義
DateTimeFormatConfルートプロパティに対して定義を行うと、ユーザー書式として独自の日時書式を追加することができます。
ユーザー書式では、以下の書式に従ってプロパティを設定することができます。
[@日時書式名]
プロパティ名=設定値
・・・
ユーザー書式の定義例(DateTimeFormatConfルートプロパティ):
[@SAMPLE01]
Format=%Y/%m/%d %H:%M:%S
TimeZone=US Eastern Standard Time
日時書式のオプションには、以下の3種類の書式が用意されています。
•簡易オプション書式
•選択オプション書式
•ユーザーオプション書式
■簡易オプション書式
簡易オプション書式は、使用頻度の高いいくつかの書式が簡略化された書式です。
後述する「選択オプション書式」でも同様の表現が可能ですが、簡易オプション書式を用いることでより簡素に定義することができます。
簡易オプション書式 |
DT |
日時 例)@DATETIME.DT.UTC ・・・ 「@DATETIME.%YmdHMS.UTC」と同等 |
D |
日付 例)@DATETIME.D ・・・ 「@DATETIME.%Ymd」と同等 |
|
T |
時刻 例)@DATETIME.T ・・・ 「@DATETIME.%HMS」と同等 |
|
DST |
サマータイム(夏時間)のとき、文字(デフォルト"DST")を付加する。(選択オプション書式で「%g」が付加された場合と同等) |
|
UTC |
UTCからの時差を付加する。(選択オプション書式で「%e」が付加された場合と同等) |
|
MS |
ミリ秒を付加する。(選択オプション書式で「%#t」が付加された場合と同等) |
例)Localeが「ja」の場合 ※DSTの例を除く
日時書式の指定例 |
表示例 |
@DATETIME |
2017/02/18 13:55:42 |
@DATETIME.D |
2017/02/18 |
@DATETIME.T |
13:55:42 |
@DATETIME.DT.MS |
2017/02/18 13:55:42.123 |
@DATETIME.DT.UTC |
2017/02/18 13:55:42 +0900 |
@DATETIME.DT.DST |
2017/02/18 13:55:42 DST ※サマータイムの場合のみ「DST」が表示される |
@DATETIME.T.D |
13:55:42 2017/02/18 |
■選択オプション書式
選択オプション書式では、「.%」の後に表示したい書式文字を列挙して指定することができます。
例えば、「@DATETIME.%Ym」と指定すると、年と月のみ表示されます。(日本(ja)の場合、「2017/02」、フランス(fr)の場合、「02/2017」のように表示)。
あるいは、「@DATETIME.%ymdHM」と指定すると、日本(ja)の場合、「17/02/18 13:55」のように表示されます。尚、選択オプション書式と簡易オプション書式は組み合わせて指定してもかまいません(「@DATETIME.DT.%p」など)。
書式文字 |
Y |
西暦4桁 |
y |
西暦の下 2 桁 (00~99) |
|
m |
月 (01~12) |
|
d |
日 (01~31) |
|
H |
24 時間表記の時間 (00~23) |
|
I |
12 時間表記の時間 (01~12) |
|
M |
分 (00~59) |
|
S |
秒 (00~59) |
|
p |
AM/PMを表す文字(ロケールに合わせる) |
|
ps |
AM/PMを表す文字(ロケールに合わせる)。時刻表示との間にブランク1文字を入れて表示する。 |
|
P |
AM/PMを表す文字(ロケールに依存せず、AM/PMで表示する) |
|
Ps |
AM/PMを表す文字(ロケールに依存せず、AM/PMで表示する)。時刻表示との間にブランク1文字を入れて表示する。 |
|
T |
ミリ秒を付加 (000~999) |
|
t |
「.」付きでミリ秒を付加 (.001~.999) |
|
e |
UTCからの時差(+mmss)を付加 |
|
g |
サマータイム(夏時間)の時、文字(デフォルトでは"DST")を付加 |
|
B |
月の正式名 (January, February など) |
|
b |
月の省略名 (Jan, Feb など) |
※以下のように、サポート書式文字の前に#を付けると、先頭の0を削除して表示します。
%#Y, %#y, %#m, %#d, %#H, %#I, %#M, %#S, %#t, %#T
※以下は、#を付与しても無視されます。
%#P, %#Ps, %#p, %#ps, %#e, %#g, %#b, %#B
例)Localeが「ja」の場合
日時書式の指定例 |
表示例 |
@DATETIME.%Ym |
2017/02 |
@DATETIME.%Y#m |
2017/2 |
@DATETIME.%IMp |
13:55PM |
@DATETIME.%IMps |
13:55 PM |
@DATETIME.%pIM |
PM13:55 |
@DATETIME.%ymdHM |
17/02/18 13:55 |
選択オプション書式では、%の後にYやmなどの書式文字を続けて定義することができます。例えば、%Ymと、%Y%mは、同じ結果となります。 指定する書式文字の順序は「p」「ps」「P」「PS」を除いてどのような順序で記述しても結果は変わりません(%Ymと%mYは同じ結果になります)。例外として、AM/PM等の表記を表示する「p」関連の書式文字については、AM/PM表記を時刻の前に表示するか、あるいは後ろに表示するかの判断を、書式文字が記述されている位置によって判別しています。具体的には、「p」関連を先頭に記述した場合のみ、AM/PMを先頭に表示し、その他の位置に記述されている場合は末尾に表示します。
例) @DATETIME.%pIMの場合、AM/PMが先頭に表示され、結果は「PM08:12」となる。 @DATETIME.%IMpの場合、AM/PMが末尾に表示され、結果は「08:12PM」となる。
|
■ユーザーオプション書式
オプション指定の際に、任意の日付書式を [] で囲んで指定することができます。
ユーザーオプション書式の用途としては、ヘッダやフッタなどを表示する場合などの特殊なフォーマットを作成するとき等に使用します。
設定例)
@DATETIME.[HEADER ].D
HEADER 2016/01/01 ・・・先頭に「HEADER 」という接頭辞を付加
@DATETIME.T.[ %#Tms]
10:11:12 12ms ・・・ミリ秒+ms を付加
日時書式で指定可能なプロパティは以下のとおりです。
■日時書式のプロパティ書式一覧
プロパティ |
仕様 |
All=日時書式名 |
日時書式名で指定した日時書式のすべてのプロパティを継承します。
例)All=@LOCALE ・・・@LOCALEの全てのプロパティを引き継ぐ
|
Base=書式文字 |
ユーザー書式のBaseプロパティの設定内容を指定することができます。 本プロパティに指定可能な書式に関する詳細は、本頁の「Baseプロパティ用書式」を参照。
|
Format=書式文字 |
ユーザー書式のFormatプロパティの設定内容を指定することができます。 本プロパティに指定可能な書式に関する詳細は、本頁の「Formatプロパティ用書式」を参照。
|
TimeZone=タイムゾーン名 TZ=タイムゾーン名 |
タイムゾーン名を指定することができます(略称:TZ)。 詳細は、「タイムゾーン名について」を参照。
|
DST=サマータイム表示文字 |
サマータイム(夏時間)の時の表示文字を指定します(デフォルトでは"DST"。%gを指定した時に使用されます)
|
DTSep=日付と時刻の間の文字列 |
日付と時刻の間の文字を指定します(デフォルトはスペース1文字)
|
AM=午前を表す文字 |
午前を表す文字を指定します(%pを指定した時に使用されます)
|
PM=午後を表す文字 |
午後を表す文字を指定します(%pを指定した時に使用されます)
|
Sunday=日曜日の正式名 |
曜日の正式名を指定します(%Aを指定した時に使用されます) |
Monday=月曜日の正式名 |
同上 |
Tuesday=火曜日の正式名 |
同上 |
Wednesday=水曜日の正式名 |
同上 |
Thursday=木曜日の正式名 |
同上 |
Friday=金曜日の正式名 |
同上 |
Saturday=土曜日の正式名
|
同上 |
ShortSunday=日曜日の略式名 |
曜日の略式名を指定します(%aを指定した時に使用されます) |
ShortMonday=月曜日の略式名 |
同上 |
ShortTuesday=火曜日の略式名 |
同上 |
ShortWednesday=水曜日の略式名 |
同上 |
ShortThursday=木曜日の略式名 |
同上 |
ShortFriday=金曜日の略式名 |
同上 |
ShortSaturday=土曜日の略式名
|
同上 |
January=1月の正式名 |
月の正式名を指定します(%Bを指定した時に使用されます) |
February=2月の正式名 |
同上 |
March=3月の正式名 |
同上 |
April=4月の正式名 |
同上 |
May=5月の正式名 |
同上 |
June=6月の正式名 |
同上 |
July=7月の正式名 |
同上 |
August=8月の正式名 |
同上 |
Seprember=9月の正式名 |
同上 |
October=10月の正式名 |
同上 |
November=11月の正式名 |
同上 |
December=12月の正式名
|
同上 |
ShortJanuary=1月の略式名 |
月の略式名を指定します(%bを指定した時に使用されます) |
ShortFebruary=2月の略式名 |
同上 |
ShortMarch=3月の略式名 |
同上 |
ShortApril=4月の略式名 |
同上 |
ShortMay=5月の略式名 |
同上 |
ShortJune=6月の略式名 |
同上 |
ShortJuly=7月の略式名 |
同上 |
ShortAugust=8月の略式名 |
同上 |
ShortSeprember=9月の略式名 |
同上 |
ShortOctober=10月の略式名 |
同上 |
ShortNovember=11月の略式名 |
同上 |
ShortDecember=12月の略式名 |
同上 |
プロパティの右辺(プロパティ名=xxx の「xxx」部分)に指定するパラメータの禁則文字は以下のとおりです。
「;」 ・・・セミコロン 「><」 ・・・左記が連続した文字列。<DST=<aaa>>はOK。<DST=<aaa><bbb>>はNG。
|
日時書式のBaseプロパティは、本書式に従って定義を行う必要があります。
Baseプロパティ用書式は、利用時にオプション(.D / .T / .DST等)を付与して利用したい場合に使用します。
Baseプロパティの定義では、以下のすべての文字(ymdHMS)を、省略せずに全て指定する必要があります。
y 年の部分
m 月の部分
d 日の部分
H 時の部分
M 分の部分
S 秒の部分
例)Base=y-m-d H:M:S
日時書式のFormatプロパティは、本書式に従って定義を行う必要があります。
Formatプロパティ用書式は、ユーザが自由に指定できる書式です。フォーマットプロパティによる定義を行った場合、日時書式を利用する際のオプションを指定した呼び出しができないという制約事項があります(.D / .T / .DST、などを指定した呼び出しはできない)。オプションを付与しての利用が必要な場合はFormatプロパティは使用せずに、Baseプロパティによる定義を行ってください。
指定可能な書式は以下のとおりです。
基本的な書式 |
%Y |
西暦4桁 |
%y |
西暦の下 2 桁 (00~99) |
|
%m |
月 (01~12) |
|
%d |
日 (01~31) |
|
%H |
24 時間表記の時間 (00~23) |
|
%I |
12 時間表記の時間 (01~12) |
|
%M |
分 (00~59) |
|
%S |
秒 (00~59) |
|
%p |
AM/PMを表す文字(ロケールに合わせる) |
|
%P |
AM/PMを表す文字(ロケールに依存せず、AM/PMで表示する) |
|
%T |
ミリ秒を表示 (000~999) |
|
%t |
「.」付きでミリ秒を表示 (.001~.999) |
|
%e |
UTCからの時差(+mmss)を付加 |
|
%g |
Day light saving(夏時間)の時、文字(デフォルト"DST")を付加 |
|
%(H1) |
1時間加算した24 時間表記の時間 (01~24) |
|
%(M1) |
1か月加算した月 (01~12)。1月の場合は2、2月の場合は3、12月の場合は1になる。 |
|
高度な書式 |
%B |
月の正式名 (January, February など) |
%b |
月の省略名 (Jan, Feb など) |
|
%A |
曜日の正式名 (Sunday, Monday など) |
|
%a |
曜日の省略名 (Sun, Mon など) |
|
%w |
日曜日を 0 とした曜日 (0~6) |
|
%% |
パーセント記号 (%) |
|
%j |
年頭からの日数 (001~366) |
※以下のように%の後に#を付けると、先頭の0を削除して表示します。
%#d, %#H, %#I, %#j, %#m, %#M, %#S, %#T, %#t, %#w, %#y, %#Y, %(#H1) , %(#M1)
※以下は、#を付与しても無視されます。
%#a, %#A, %#b, %#B, %#p, %#%, %#e, %#s