SenseTalkの日付と時刻の形式
SenseTalkの日付と時刻の値のフォーマット機能、および異なる設定(すなわち、1/7/19または2019年1月7日)で表示される日付と時刻を認識する機能は、国際ユニコードコンポーネント(ICU)標準に基づく形式文字列を使用します。この標準については、ICU ユーザーガイドを参照してください。
SenseTalkは、日付/時刻形式を定義する3つの異なる方法を受け入れ、サポートしています:
- ブラケットスタイル: 角括弧、[および]で囲まれたトークン。 例:
[year]
,[weekday]
このスタイルは、the timeFormat
およびtimeInputFormat
グローバルプロパティなど、SenseTalkのすべての組み込み形式で使用されます。 - パーセントスタイル: パーセント文字、%で識別されるトークン。 例:
%Y
,%A
このスタイルはC、Python、PHPなどの他のプログラミング言語のstrftime
関数で使用されます。 - ユニコードスタイル: ICU標準によって定義されたトークン。 例:
yyyy,
EEEE
これらの日付/時刻形式は、ICUライブラリを使用する他の多くのソフトウェアと互換性があります。
以下の各例は、この形式の日付を結果とします:2019年4月8日 10:04:37
- ブラケット形式:
[month name] [day], [year] [hr]:[mi]:[se]
- パーセント形式:
%B %e, %Y %H:%M:%S
- ユニコード形式:
MMMM d, yyyy HH:mm:ss
トークンに追加する日付/時刻定義文字列に含まれる任意の文字はリテラルとして扱われます。上記の各形式の例では、スペース、コンマ(,) 、およびコロン(:)は、フォーマットされた日付/時刻シーケンスでトークンの間に表示する必要がある場所に配置されます。
SenseTalkでは、日付と時刻の形式文字列はformattedTime
関数、timeFormat
グローバルプロパティ、timeInputFormat
グローバルプロパティ、および 変数のformat
プロパティで使用されます。
日付と時刻の定義
以下の表は、さまざまな形式の日付/時刻シーケンスの各部分を定義するために必要な特定のトークンを示しています。表示列は、日付:2019年1月7日 2:34:56.01234567 p.m.
について各トークンが表示するものを示しています。
ブラケットスタイル | パーセントスタイル | ユニコードスタイル | 表示 | 説明 |
---|---|---|---|---|
[year] | %Y | yyyy | 2019 | 全年(4桁の年数) |
[yr] | %y | yy | 19 | 年の最後の2桁(常に2桁、1-9年は先頭にゼロ) |
[y] | %1y | y | 2019 | 年数(1桁以上) (注: [y]とyはすべての場合で%1yと全く同じように動作するわけではないかもしれません。) |
[long monthName] [monthName] [long month] | %B | MMMM | 1月 | 月のフルネーム |
[mon] [abbreviated monthName] [abbrev monthName] [abbr month] | %b | MMM | 月 | 月名の省略形(名前の最初の3文字) |
[month] [m] | %1m | M | 1 | 月数(1または2桁) |
[short month] [mo] [short monthName] | %m | MM | 01 | 月数(1-9月は先頭にゼロがついた2桁の月数) |
[day] [d] | %1d %e | d | 7 | 月の日(1または2桁) |
[da] | %d | dd | 07 | 月の日(常に2桁、1~9日は先頭にゼロをつける) |
[era] | G | AD | 時代の省略名(BCまたはAD) | |
[eraName] | GGGG | Anno Domini | 時代の全名 | |
[weekday] [weekday name] [long weekday] [long weekdayName] | %A | EEEE | 月曜日 | 週の日の全名 |
[wkday] [abbr(ev(iated)) weekday] [abbr(ev(iated)) weekdayName] | %a | E | Mon | 週の日の省略名(最初の3文字) |
[short weekday] [short weekdayName] | EEEEEE | Mo | 週の日の短縮形(最初の2文字) | |
[dayOfWeek] | %w | e | 2 | 週の日の数、1から7まで。数字1は週の最初の日(システム設定により変動可)を表します。この例では、日曜日が週の最初の日です。 |
[am] [pm] | %p | a | PM | 1日の期間(AMまたはPM) |
[hour] [hour24] | %1H | H | 14 | 24時間制を使用した1日の時間(0から23まで) |
[hr] [hr24] | %H | HH | 14 | 24時間制を使用した1日の時間(00から23まで、常に2桁、0~9時間は先頭にゼロをつける) |
[hour12] | %1I | h | 2 | 12時間制を使用した1日の時間(1から12まで) |
[hr12] | %I | hh | 02 | 12時間制を使用した1日の時間(01から12まで、常に2桁、1~9時間は先頭にゼロをつける) |
[minute] [min] | %1M | m | 34 | 時間の分(0から59まで) |
[mi] | %M | mm | 34 | 時間の分(00から59まで、常に2桁、0~9分は先頭にゼロをつける) |
[second] [sec] | %1S | s | 56 | 分の秒(0から59まで) |
[se] | %S | ss | 56 | 分の秒(00から59まで、常に2桁、0~9秒は先頭にゼロをつける) |
[millisecond] | %F | SSS | 012 | 秒内のミリ秒(千分の1秒)(000から999まで、常に3桁) |
[nanosecond] | SSSSSS | 012346 | 秒内のナノ秒(百万分の1秒)(000000から999999まで、常に6桁 | |
[timeZone] | %z | ZZZ | 0800 | GMTからのタイムゾーンのオフセット(±hhmm形式で表示) |
[short timeZone] | x | 08 | GMTからのタイムゾーンのオフセット(時間(分が0でない場合も表示)) | |
[long TimeZone] | ZZZZ | GMT-08:00 | 長いローカライズされたGMTのオフセット(GMT±hh:mm形式で表示) | |
[timeZone ID] [long timeZone ID] | %Z | VV | America/Los Angeles | 長いタイムゾーンの識別子 |
[short timeZone ID] | V | uslax | 短いタイムゾーンの識別子 | |
[timeZone City] | VVV | Los Angeles | タイムゾーンの代表都市 | |
[timeZoneName] | vvvv | Pacific Time | タイムゾーンの一般名 | |
[short timeZoneName] | v | PT | タイムゾーンの一般略語 | |
[long timeZoneName] | zzzz | Pacific Standard Time | タイムゾーンの特定名 | |
[abbr(ev(iated)) timeZone Name] | z | PST | タイムゾーンの特定略語 | |
[timeZoneISO] | XX | -0800 or Z | GMTからのタイムゾーンのオフセット(±hhmm形式で表示)またはオフセットがゼロの場合はZ | |
[short timeZoneISO] | -08 or Z | GMTからのタイムゾーンのオフセット(時間(分が0でない場合も表示))またはオフセットがゼロの場合はZ | ||
[long timeZoneISO] | -08:00 or Z | GMTからのタイムゾーンのオフセット(±hh:mm形式で表示)またはオフセットがゼロの場合はZ | ||
[dayOfYear] | %1j | D | 7 | 年の中の日 (1から366まで) |
[dayOfYear3] | %j | DDD | 007 | 年の中の日(001から366まで、常に3桁) |
[weekYear] | YYYY | 2019 | 「年の中の週」の計算で使われる年の数値。これはISO 8601で定義されているISO年週暦で使用される年です。年の最初または最後の3日以内の日付の場合、値は暦年と異なる場合があります。 | |
[weekOfYear] | w | 2 | 年の中の週の番号(1から52または53まで | |
[wkOfYear] | ww | 02 | 年の中の週の番号(1から52または53まで、常に2桁、週0-9はゼロが先行) | |
[weekOfMonth] | W | 2 | 月の中の週の番号(1から5まで) | |
[dayOfWeekInMonth] | F | 1 | 月内の曜日の序数(1から5まで)。この例では、値1は、2019年1月7日が月の最初の月曜日であることを示しています。 | |
%c | 完全なローカライズされた日付と時刻 | |||
%x | ローカライズされた日付 | |||
%X | ローカライズされた時間 | |||
['quoted' ] | 'quoted' | quoted | ブラケットスタイルを使用する場合、[ ] の外側の何もかもが常にリテラルであるため、これは四角いブラケットを含むテキストをリテラルとして扱う必要がある(極めて稀)場合のみ必要です。 |
* 年の中の週
[weekYear]、[weekOfYear]、 または [wkOfYear] フィールドの値はまず、日付が年の何週目にあたるか、1から53までを決定します。年の第1週はその年の少なくとも4日間が含まれる週です(つまり、その年の1月4日が含まれる)。
例えば、2019年1月1日が火曜日にあたったため、その年の週1は2018年12月30日(日曜日)から2019年1月5日(土曜日)までの日付を含んでいます。一年の週1と次の年の週1の間の週は2から52または53(必要に応じて)まで連番で番号付けされます。したがって、2018年12月30日と31日の[weekYear]は2018年ではなく2019年であり、それらの日付は2019年の第1週内に含まれるからです。
[weekOfMonth]と[dayOfWeekInMonth]の値も同様に計算されます。
ブラケット形式を使用する場合、トークン名は大文字と小文字を区別しないで、スペースは無視されます。したがって、以下のすべては受け入れられ、同等です:
[short month name]
[Short MonthName]
[shortMONTHname]