カスタム日時形式文字列
日付と時刻の書式指定文字列は、書式設定操作の結果の Date、 DateTime、 DateTimeZone、または Time 値のテキスト表現を定義します。 また、文字列を日時に正常に変換するために解析操作で必要となる日時値の表現も定義します。 カスタム書式指定文字列は、1 つ以上のカスタム日時書式指定子で構成されます。 標準の日時書式指定文字列ではない文字列はカスタム日時書式指定文字列として解釈されます。
書式設定操作では、日付と時刻のカスタム書式指定文字列を、日付と時刻とタイムゾーンのインスタンスの ToText
メソッドと共に使用できます。 次の例は、その用途を示しています。
let
Source =
{
Text.From("Today is " & Date.ToText(#date(2011, 6, 10), [Format = "MMMM dd yyyy"]) & "."),
Text.Format("The current date and time: #{0}", {DateTimeZone.ToText(
#datetimezone(2011, 6, 10, 15, 24, 16, 0, 0), [Format = "MM/dd/yy H:mm:ss zzz"])}
)
}
in
Source
// The example displays the following output:
// Today is June 10, 2011.
// The current date and time: 06/10/11 15:24:16 +00:00
解析操作では、 Date、 DateTime、 Time、および DateTimeZone 関数でカスタム日付と時刻の書式指定文字列を使用できます。 これらの関数では、解析操作を成功させるために、入力文字列が特定のパターンに正確に準拠している必要があります。 次の例は、月、日、2 桁の年を含める必要がある日付を解析する DateTime.FromText 関数の呼び出しを示しています。
let
dateValues = { "30-12-2011", "12-30-2011", "30-12-11", "12-30-11"},
pattern = "MM-dd-yy",
convertedDates = List.Transform(dateValues, (dateValue) =>
try Text.Format("Converted '#{0}' to #{1}.", {dateValue, DateTime.FromText(dateValue, [Format=pattern])})
otherwise Text.Format("Unable to convert '#{0}' to a date and time.", {dateValue}))
in
convertedDates
// The example displays the following output:
// Unable to convert '30-12-2011' to a date and time.
// Unable to convert '12-30-2011' to a date and time.
// Unable to convert '30-12-11' to a date and time.
// Converted '12-30-11' to 12/30/2011.
次の表に、カスタム日時書式指定子の説明および書式指定子ごとの書式設定後の文字列を示します。 既定では、結果の文字列は、en-US カルチャの書式指定規則を反映します。 特定の書式指定子でローカライズされた文字列が書式設定後に生成される場合、例には書式設定後の文字列が適用されるカルチャも示されます。 カスタム日時書式指定文字列の使用の詳細については、「 Notes 」セクションを参照してください。
書式指定子 | 説明 | 使用例 |
---|---|---|
"d" | 月の日にち (1 - 31)。 詳細情報:"d" カスタム書式指定子。 |
2009-06-01T13:45:30 -> 1 2009-06-15T13:45:30 -> 15 |
"dd" | 月の日にち (01 - 31)。 詳細: "dd" カスタム書式指定子。 |
2009-06-01T13:45:30 -> 01 2009-06-15T13:45:30 -> 15 |
"ddd" | 曜日の省略名。 詳細情報: "ddd" カスタム書式指定子。 |
2009-06-15T13:45:30 -> Mon (en-US) 2009-06-15T13:45:30 -> Пн (ru-RU) 2009-06-15T13:45:30 -> lun. (fr-FR) |
"dddd" | 曜日の完全名。 詳細情報: "dddd" カスタム書式指定子。 |
2009-06-15T13:45:30 -> Monday (en-US) 2009-06-15T13:45:30 -> понедельник (ru-RU) 2009-06-15T13:45:30 -> lundi (fr-FR) |
"f" | 日時値の秒部分の 1/10。 詳細情報:"F" カスタム書式指定子。 |
2009-06-15T13:45:30.6170000 -> 6 2009-06-15T13:45:30.05 -> 0 |
"ff" | 日時値の秒部分の 1/100。 詳細情報:"ff" カスタム書式指定子。 |
2009-06-15T13:45:30.6170000 -> 61 2009-06-15T13:45:30.0050000 -> 00 |
"fff" | 日時値の秒部分の 1/1000。 詳細情報:"fff" カスタム書式指定子。 |
6/15/2009 13:45:30.617 -> 617 6/15/2009 13:45:30.0005 -> 000 |
"ffff" | 日時値の秒部分の 1/10000。 詳細情報:"ffff" カスタム書式指定子。 |
2009-06-15T13:45:30.6175000 -> 6175 2009-06-15T13:45:30.0000500 -> 0000 |
"fffff" | 日時値の秒部分の 1/100000。 詳細情報:"fffff" カスタム書式指定子。 |
2009-06-15T13:45:30.6175400 -> 61754 6/15/2009 13:45:30.000005 -> 00000 |
"ffffff" | 日時値の秒部分の 1/1000000。 詳細情報:"ffffff" カスタム書式指定子。 |
2009-06-15T13:45:30.6175420 -> 617542 2009-06-15T13:45:30.0000005 -> 000000 |
"fffffff" | 日時値の秒部分の 1/10000000。 詳細情報:"fffffff" カスタム書式指定子。 |
2009-06-15T13:45:30.6175425 -> 6175425 2009-06-15T13:45:30.0001150 -> 0001150 |
"F" | 日時値の秒部分の 1/10 (0 以外の場合)。 詳細情報:"F" カスタム書式指定子。 |
2009-06-15T13:45:30.6170000 -> 6 2009-06-15T13:45:30.0500000 -> (出力なし) |
"FF" | 日時値の秒部分の 1/100 (0 以外の場合)。 詳細情報:"FF" カスタム書式指定子。 |
2009-06-15T13:45:30.6170000 -> 61 2009-06-15T13:45:30.0050000 -> (出力なし) |
"FFF" | 日時値の秒部分の 1/1000 (0 以外の場合)。 詳細情報: "FFF" カスタム書式指定子。 |
2009-06-15T13:45:30.6170000 -> 617 2009-06-15T13:45:30.0005000 -> (出力なし) |
"FFFF" | 日時値の秒部分の 1/10000 (0 以外の場合)。 詳細情報:"FFFF" カスタム書式指定子。 |
2009-06-15T13:45:30.5275000 -> 5275 2009-06-15T13:45:30.0000500 -> (出力なし) |
"FFFFF" | 日時値の秒部分の 1/100000 (0 以外の場合)。 詳細情報:"FFFFF" カスタム書式指定子。 |
2009-06-15T13:45:30.6175400 -> 61754 2009-06-15T13:45:30.0000050 -> (出力なし) |
"FFFFFF" | 日時値の秒部分の 1/1000000 (0 以外の場合)。 詳細情報:"FFFFFF" カスタム書式指定子。 |
2009-06-15T13:45:30.6175420 -> 617542 2009-06-15T13:45:30.0000005 -> (出力なし) |
"FFFFFFF" | 日時値の秒部分の 1/10000000 (0 以外の場合)。 詳細情報:"FFFFFFF" カスタム書式指定子。 |
2009-06-15T13:45:30.6175425 -> 6175425 2009-06-15T13:45:30.0001150 -> 000115 |
"g"、"gg" | 時期または時代 (年号)。 詳細情報: "g" または "gg" カスタム書式指定子。 |
2009-06-15T13:45:30.6170000 -> A.D. |
"h" | 12 時間形式の時間 (1 ~ 12)。 詳細情報:"h" カスタム書式指定子。 |
2009-06-15T01:45:30 -> 1 2009-06-15T13:45:30 -> 1 |
"hh" | 12 時間形式の時間 (01 ~ 12)。 詳細情報:"hh" カスタム書式指定子。 |
2009-06-15T01:45:30 -> 01 2009-06-15T13:45:30 -> 01 |
"H" | 24 時間形式の時間 (0 ~ 23)。 詳細情報: "H" カスタム書式指定子。 |
2009-06-15T01:45:30 -> 1 2009-06-15T13:45:30 -> 13 |
"HH" | 24 時間形式の時間 (00 ~ 23)。 詳細情報: "HH" カスタム書式指定子。 |
2009-06-15T01:45:30 -> 01 2009-06-15T13:45:30 -> 13 |
"K" | タイム ゾーン情報。 詳細情報: "K" カスタム書式指定子。 |
2009-06-15T13:45:30, Unspecified -> 2009-06-15T13:45:30, Utc -> +00:00 2009-06-15T13:45:30,Local -> -07:00 (ローカルまたはクラウド コンピューターの設定によって異なります) |
"m" | 分 (0 - 59)。 詳細情報:"m" カスタム書式指定子。 |
2009-06-15T01:09:30 -> 9 2009-06-15T13:29:30 -> 29 |
"mm" | 分 (00 - 59)。 詳細情報:"mm" カスタム書式指定子。 |
2009-06-15T01:09:30 -> 09 2009-06-15T01:45:30 -> 45 |
"M" | 月 (1 - 12)。 詳細情報: "M" カスタム書式指定子。 |
2009-06-15T13:45:30 -> 6 |
"MM" | 月 (01 - 12)。 詳細情報: "MM" カスタム書式指定子。 |
2009-06-15T13:45:30 -> 06 |
"MMM" | 月の省略名。 詳細情報: "MMM" カスタム書式指定子。 |
2009-06-15T13:45:30 -> Jun (en-US) 2009-06-15T13:45:30 -> juin (fr-FR) 2009-06-15T13:45:30 -> Jun (zu-ZA) |
"MMMM" | 月の完全名。 詳細情報: "MMMM" カスタム書式指定子。 |
2009-06-15T13:45:30 -> June (en-US) 2009-06-15T13:45:30 -> juni (da-DK) 2009-06-15T13:45:30 -> Juni (zu-ZA) |
"s" | 秒 (0 - 59)。 詳細情報:"s" カスタム書式指定子。 |
2009-06-15T13:45:09 -> 9 |
"ss" | 秒 (00 - 59)。 詳細情報:"ss" カスタム書式指定子。 |
2009-06-15T13:45:09 -> 09 |
"t" | AM/PM 指定子の最初の文字。 詳細情報: "t" カスタム書式指定子。 |
2009-06-15T13:45:30 -> P (en-US) 2009-06-15T13:45:30 -> 午 (ja-JP) 2009-06-15T13:45:30 -> (fr-FR) |
"tt" | AM/PM 指定子。 詳細情報: "tt" カスタム書式指定子。 |
2009-06-15T13:45:30 -> PM (en-US) 2009-06-15T13:45:30 -> 午後 (ja-JP) 2009-06-15T13:45:30 -> (fr-FR) |
"y" | 年 (0 ~ 99)。 詳細情報: "y" カスタム書式指定子。 |
0001-01-01T00:00:00 -> 1 0900-01-01T00:00:00 -> 0 1900-01-01T00:00:00 -> 0 2009-06-15T13:45:30 -> 9 2019-06-15T13:45:30 -> 19 |
"yy" | 年 (00 ~ 99)。 詳細情報: "yy" カスタム書式指定子。 |
0001-01-01T00:00:00 -> 01 0900-01-01T00:00:00 -> 00 1900-01-01T00:00:00 -> 00 2019-06-15T13:45:30 -> 19 |
"yyy" | 年 (3 桁以上)。 詳細情報: "yyy" カスタム書式指定子。 |
0001-01-01T00:00:00 -> 001 0900-01-01T00:00:00 -> 900 1900-01-01T00:00:00 -> 1900 2009-06-15T13:45:30 -> 2009 |
"yyyy" | 年 (4 桁の数値)。 詳細情報: "yyyy" カスタム書式指定子。 |
0001-01-01T00:00:00 -> 0001 0900-01-01T00:00:00 -> 0900 1900-01-01T00:00:00 -> 1900 2009-06-15T13:45:30 -> 2009 |
"yyyyy" | 年 (5 桁の数値)。 詳細情報: "yyyy" カスタム書式指定子。 |
0001-01-01T00:00:00 -> 00001 2009-06-15T13:45:30 -> 02009 |
"z" | UTC を基準とする時間単位のオフセット (先行ゼロなし)。 詳細: "z" カスタム書式指定子。 |
2009-06-15T13:45:30-07:00 -> -7 |
"zz" | UTC を基準とする時間単位のオフセット (先行ゼロ付きの 1 桁の値)。 詳細情報: "zz" カスタム書式指定子。 |
2009-06-15T13:45:30-07:00 -> -07 |
"zzz" | UTC を基準とする時間および分単位のオフセット。 詳細: "zzz" カスタム書式指定子。 |
2009-06-15T13:45:30-07:00 -> -07:00 |
":" | 時刻の区切り記号。 詳細情報: ":" カスタム書式指定子。 |
2009-06-15T13:45:30 -> : (en-US) 2009-06-15T13:45:30 -> . (it-IT) 2009-06-15T13:45:30 -> : (ja-JP) |
"/" | 日付の区切り記号。 詳細情報: "/" カスタム書式指定子。 |
2009-06-15T13:45:30 -> / (en-US) 2009-06-15T13:45:30 -> - (ar-DZ) 2009-06-15T13:45:30 -> . (tr-TR) |
"文字列" '文字列' |
リテラル文字列の区切り記号。 詳細情報:文字リテラル。 |
2009-06-15T13:45:30 (""arr:"" h:m t) -> arr: 1:45 P 2009-06-15T13:45:30 ('arr:' h:m t) -> arr: 1:45 P |
% | 後続の文字をカスタム書式指定子として定義します。 詳細: 単一のカスタム書式指定子の使用。 |
2009-06-15T13:45:30 (%h) -> 1 |
\, "", ' | エスケープ シーケンス。 詳細情報: Character リテラル および エスケープ シーケンスの使用。 |
2009-06-15T13:45:30 (h \h) -> 1 h 2009-06-15T13:45:30 (h ""h")-> 1 h 2009-06-15T13:45:30 (h 'h') -> 1 h |
その他の文字 | 文字が結果の文字列にそのままコピーされます。 詳細情報:文字リテラル。 |
2009-06-15T01:45:30 (arr hh:mm t) -> arr 01:45 A |
以降では、それぞれのカスタム日時書式指定子について詳しく説明します。 特に明記されていない限り、各指定子は、 Date、 DateTime、 DateTimeZone、または Time 値で使用されるかどうかにかかわらず、同じ文字列表現を生成します。
日にちの "d" 書式指定子
"d" カスタム書式指定子
"d" カスタム書式指定子は、月の日にちを 1 - 31 の数値として表します。 1 桁の日にちは、先行ゼロなしで書式設定されます。
"d" 書式指定子が単独で使用され、その他のカスタム書式指定子がない場合、"d" は標準の日時書式指定子として解釈されます。 1 つの書式指定子の使用の詳細については、この記事で後述する「 単一カスタム書式指定子の使用 を参照してください。
次の例では、複数の書式指定文字列の中に "d" カスタム書式指定子が含まれます。
let
Source =
{
DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15), [Format = "d, M", Culture = ""]),
// Displays 29, 8
DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15), [Format = "d, MMMM", Culture = "en-US"]),
// Displays 29, August
DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15), [Format = "d, MMMM", Culture = "es-MX"])
// Displays 29, agosto
}
in
Source
"dd" カスタム書式指定子
"dd" カスタム書式文字列は、月の日にちを 01 - 31 の数値として表します。 1 桁の日にちは、先行ゼロ付きで書式設定されます。
次の例では、カスタム書式指定文字列の中に "dd" カスタム書式指定子が含まれます。
let
Source =
{
DateTime.ToText(#datetime(2024, 1, 2, 6, 30, 15), [Format = "dd, MM", Culture = ""])
// Displays 02, 01
}
in
Source
"ddd" カスタム書式指定子
"ddd" カスタム書式指定子は、曜日の省略名を表します。 曜日のローカライズされた省略名は、現在または指定されたカルチャから取得されます。
次の例では、カスタム書式指定文字列の中に "ddd" カスタム書式指定子が含まれます。
let
Source =
{
DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15), [Format = "ddd d MMM", Culture = "en-US"]),
// Displays Thu 29 Aug
DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15), [Format = "ddd d MMM", Culture = "fr-FR"])
// Displays jeu. 29 août
}
in
Source
"dddd" カスタム書式指定子
"dddd" カスタム書式指定子 (任意の数の "d" 指定子を追加可能) は、曜日の完全名を表します。 曜日のローカライズされた名前は、現在または指定されたカルチャから取得されます。
次の例では、カスタム書式指定文字列の中に "dddd" カスタム書式指定子が含まれます。
let
Source =
{
DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15), [Format = "dddd dd MMMM", Culture = "en-US"]),
// Displays Thursday 29 August
DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15), [Format = "dddd dd MMMM", Culture = "it-IT"])
// Displays giovedì 29 agosto
}
in
Source
小文字の秒 "f" 書式指定子
"f" カスタム書式指定子
"f" カスタム書式指定子は、秒の端数の最上位桁 (つまり、日時値の秒部分の 1/10) を表します。
"f" 書式指定子が単独で使用され、その他の書式指定子がない場合、"f" は標準の日時書式指定子として解釈されます。 1 つの書式指定子の使用の詳細については、この記事で後述する「 単一カスタム書式指定子の使用 を参照してください。
指定された書式指定文字列の一部として "f" 書式指定子を使用して秒の小数部数を解析する場合、"f" 書式指定子の数は、文字列を正常に解析するために存在する必要がある秒分数の最も重要な桁数を示します。
次の例では、カスタム書式指定文字列の中に "f" カスタム書式指定子が含まれます。
let
Source =
{
DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15.018), [Format = "hh:mm:ss:f", Culture = ""]),
// Displays 07:27:15:0
DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15.018), [Format = "hh:mm:ss:F", Culture = ""])
// Displays 07:27:15:
}
in
Source
"ff" カスタム書式指定子
"ff" カスタム書式指定子は、秒の端数の最上位 2 桁 (つまり、日時値の秒部分の 1/100) を表します。
次の例では、カスタム書式指定文字列の中に "ff" カスタム書式指定子が含まれます。
let
Source =
{
DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15.018), [Format = "hh:mm:ss:ff", Culture = ""]),
// Displays 07:27:15:01
DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15.018), [Format = "hh:mm:ss:FF", Culture = ""])
// Displays 07:27:15:01
}
in
Source
"fff" カスタム書式指定子
"fff" カスタム書式指定子は、秒の端数の最上位 3 桁 (つまり、日時値の秒部分の 1/1000) を表します。
次の例では、カスタム書式指定文字列の中に "fff" カスタム書式指定子が含まれます。
let
Source =
{
DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15.018), [Format = "hh:mm:ss:fff", Culture = ""]),
// Displays 07:27:15:018
DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15.018), [Format = "hh:mm:ss:FFF", Culture = ""])
// Displays 07:27:15:018
}
in
Source
"ffff" カスタム書式指定子
"ffff" カスタム書式指定子は、秒の端数の最上位 4 桁 (つまり、日時値の秒部分の 1/10000) を表します。
時刻値の 2 番目の要素の 10,000 分の 1 を表示することはできますが、その値は意味を持たない可能性があります。 日付および時刻の値の精度は、システム クロックの分解能に依存します。 Windows Server 2019 および Windows 11 オペレーティング システムでは、クロックの解像度は約 1 ミリ秒です。
"fffff" カスタム書式指定子
"fffff" カスタム書式指定子は、秒の端数の最上位 5 桁 (つまり、日時値の秒部分の 1/100000) を表します。
時刻値の 2 番目の要素の 10000 分の 1 を表示することはできますが、その値は意味を持たない可能性があります。 日付および時刻の値の精度は、システム クロックの分解能に依存します。 Windows Server 2019 および Windows 11 オペレーティング システムでは、クロックの解像度は約 1 ミリ秒です。
"ffffff" カスタム書式指定子
"ffffff" カスタム書式指定子は、秒の端数の最上位 6 桁 (つまり、日時値の秒部分の 1/1000000) を表します。
時間値の 2 番目の要素の 100 万分の 1 を表示することはできますが、その値は意味を持たない可能性があります。 日付および時刻の値の精度は、システム クロックの分解能に依存します。 Windows Server 2019 および Windows 11 オペレーティング システムでは、クロックの解像度は約 1 ミリ秒です。
"fffffff" カスタム書式指定子
"fffffff" カスタム書式指定子は、秒の端数の最上位 7 桁 (つまり、日時値の秒部分の 1/10000000) を表します。
時間値の 2 番目の要素の 1,000 万分の 1 を表示することはできますが、その値は意味を持たない可能性があります。 日付および時刻の値の精度は、システム クロックの分解能に依存します。 Windows Server 2019 および Windows 11 オペレーティング システムでは、クロックの解像度は約 1 ミリ秒です。
大文字の秒 "F" 書式指定子
"F" カスタム書式指定子
"F" カスタム書式指定子は、秒の端数の最上位桁 (つまり、日時値の秒部分の 1/10) を表します。 数字がゼロの場合は何も表示されず、秒数の後に続く小数点も表示されません。
"F" 書式指定子が単独で使用され、その他の書式指定子がない場合、"F" は標準の日時書式指定子として解釈されます。 1 つの書式指定子の使用の詳細については、この記事で後述する「 単一カスタム書式指定子の使用 を参照してください。
解析時に使用される "F" 書式指定子の数は、文字列を正常に解析するために存在できる秒分数の最も重要な桁数を示します。
次の例では、カスタム書式指定文字列の中に "F" カスタム書式指定子が含まれます。
let
Source =
{
DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15.018), [Format = "hh:mm:ss:f", Culture = ""]),
// Displays 07:27:15:0
DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15.018), [Format = "hh:mm:ss:F", Culture = ""])
// Displays 07:27:15:
}
in
Source
"FF" カスタム書式指定子
"FF" カスタム書式指定子は、秒の端数の最上位 2 桁 (つまり、日時値の秒部分の 1/100) を表します。 末尾のゼロは表示されません。 2 桁の有効桁数がゼロの場合は、何も表示されません。その場合、秒数の後に続く小数点も表示されません。
次の例では、カスタム書式指定文字列の中に "FF" カスタム書式指定子が含まれます。
let
Source =
{
DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15.018), [Format = "hh:mm:ss:ff", Culture = ""]),
// Displays 07:27:15:01
DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15.018), [Format = "hh:mm:ss:FF", Culture = ""])
// Displays 07:27:15:01
}
in
Source
"FFF" カスタム書式指定子
"FFF" カスタム書式指定子は、秒の端数の最上位 3 桁 (つまり、日時値の秒部分の 1/1000) を表します。 末尾のゼロは表示されません。 3 桁の有効桁数がゼロの場合は、何も表示されません。その場合、秒数の後に続く小数点も表示されません。
次の例では、カスタム書式指定文字列の中に "FFF" カスタム書式指定子が含まれます。
let
Source =
{
DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15.018), [Format = "hh:mm:ss:fff", Culture = ""]),
// Displays 07:27:15:018
DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15.018), [Format = "hh:mm:ss:FFF", Culture = ""])
// Displays 07:27:15:018
}
in
Source
"FFFF" カスタム書式指定子
"FFFF" カスタム書式指定子は、秒の端数の最上位 4 桁 (つまり、日時値の秒部分の 1/10000) を表します。 末尾のゼロは表示されません。 4 桁の有効桁数がゼロの場合は、何も表示されません。その場合、秒数の後に続く小数点も表示されません。
時刻値の 2 番目の要素の 10,000 分の 1 を表示することはできますが、その値は意味を持たない可能性があります。 日付および時刻の値の精度は、システム クロックの分解能に依存します。 Windows Server 2019 および Windows 11 オペレーティング システムでは、クロックの解像度は約 1 ミリ秒です。
"FFFFF" カスタム書式指定子
"FFFFF" カスタム書式指定子は、秒の端数の最上位 5 桁 (つまり、日時値の秒部分の 1/100000) を表します。 末尾のゼロは表示されません。 5 桁の有効桁数がゼロの場合は、何も表示されません。その場合、秒数の後に続く小数点も表示されません。
時刻値の 2 番目の要素の 10000 分の 1 を表示することはできますが、その値は意味を持たない可能性があります。 日付および時刻の値の精度は、システム クロックの分解能に依存します。 Windows Server 2019 および Windows 11 オペレーティング システムでは、クロックの解像度は約 1 ミリ秒です。
"FFFFFF" カスタム書式指定子
"FFFFFF" カスタム書式指定子は、秒の端数の最上位 6 桁 (つまり、日時値の秒部分の 1/1000000) を表します。 末尾のゼロは表示されません。 6 桁の有効桁数がゼロの場合は、何も表示されません。その場合、秒数の後に続く小数点も表示されません。
時間値の 2 番目の要素の 100 万分の 1 を表示することはできますが、その値は意味を持たない可能性があります。 日付および時刻の値の精度は、システム クロックの分解能に依存します。 Windows Server 2019 および Windows 11 オペレーティング システムでは、クロックの解像度は約 1 ミリ秒です。
"FFFFFFF" カスタム書式指定子
"FFFFFFF" カスタム書式指定子は、秒の端数の最上位 7 桁 (つまり、日時値の秒部分の 1/10000000) を表します。 末尾のゼロは表示されません。 7 桁の有効桁数がゼロの場合は、何も表示されません。その場合、秒数の後に続く小数点も表示されません。
時間値の 2 番目の要素の 1,000 万分の 1 を表示することはできますが、その値は意味を持たない可能性があります。 日付および時刻の値の精度は、システム クロックの分解能に依存します。 Windows Server 2019 および Windows 11 オペレーティング システムでは、クロックの解像度は約 1 ミリ秒です。
時代 "g" 書式指定子
"g" または "gg" カスタム書式指定子
"g" または "gg" カスタム書式指定子 (任意の数の "g" 指定子を追加可能) は、A.D. などの時期または時代 (年号) を表します。書式設定される日付に時期または時代 (年号) の文字列が関連付けられていない場合、この指定子は無視されます。
"g" 書式指定子が単独で使用され、その他のカスタム書式指定子がない場合、"g" は標準の日時書式指定子として解釈されます。 1 つの書式指定子の使用の詳細については、この記事で後述する「 単一カスタム書式指定子の使用 を参照してください。
次の例では、カスタム書式指定文字列の中に "g" カスタム書式指定子が含まれます。
let
Source =
{
Date.ToText(#date(70, 08, 04), [Format = "MM/dd/yyyy g", Culture = ""]),
// Displays 08/04/0070 A.D.
Date.ToText(#date(70, 08, 04), [Format = "MM/dd/yyyy g", Culture = "fr-FR"])
// Displays 08/04/0070 ap. J.-C.
}
in
Source
小文字の時間 "h" 書式指定子
"h" カスタム書式指定子
"h" カスタム書式指定子は、時間を 1 - 12 の数値として表します。つまり、午前 0 時と午後 0 時から時間をカウントする 12 時間制で時間が表されます。 午前 0 時からの特定の時間を、午後 0 時からの同じ時間と区別できません。 時間は丸められず、1 桁の時間は先頭に 0 を付けずに書式設定されます。 たとえば、午前と午後の 5:43 という時間は、このカスタム書式指定子によって "5" と表示されます。
"h" 書式指定子が他のカスタム書式指定子なしで使用されている場合は、標準の日時書式指定子として解釈され、式エラーがスローされます。 1 つの書式指定子の使用の詳細については、この記事で後述する「 単一カスタム書式指定子の使用 を参照してください。
次の例では、カスタム書式指定文字列の中に "h" カスタム書式指定子が含まれます。
let
Source =
{
DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "h:m:s.F t", Culture = ""]),
// Displays 6:9:1 P
DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "h:m:s.F t", Culture = "el-GR"]),
// Displays 6:9:1 μ
DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "h:m:s.F t", Culture = ""]),
// Displays 9:18:1.5 A
DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "h:m:s.F t", Culture = "el-GR"])
// Displays 9:18:1.5 π
}
in
Source
"hh" カスタム書式指定子
"hh" カスタム書式指定子 (任意の数の "h" 指定子を追加可能) は、時間を 01 - 12 の数値として表します。つまり、午前 0 時と午後 0 時から時間をカウントする 12 時間制で時間が表されます。 午前 0 時からの特定の時間を、午後 0 時からの同じ時間と区別できません。 時間は丸められず、1 桁の時間は先頭に 0 で書式設定されます。 たとえば、午前と午後の 5:43 という時間は、この書式指定子によって "05" と表示されます。
次の例では、カスタム書式指定文字列の中に "hh" カスタム書式指定子が含まれます。
let
Source =
{
DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "hh:mm:ss tt", Culture = ""]),
// Displays 06:09:01 PM
DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "hh:mm:ss tt", Culture = "hu-HU"]),
// Displays 06:09:01 du.
DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "hh:mm:ss.ff tt", Culture = ""]),
// Displays 09:18:01.50 AM
DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "hh:mm:ss.ff tt", Culture = "hu-HU"])
// Displays 09:18:01.50 de.
}
in
Source
大文字の時間 "H" 書式指定子
"H" カスタム書式指定子
"H" カスタム書式指定子は、時間を 0 - 23 の数値として表します。つまり、午前 0 時から時間をカウントする 24 時間制で時間が表されます。 1 桁の時間は、先行ゼロなしで書式設定されます。
"H" 書式指定子が他のカスタム書式指定子なしで使用されている場合は、標準の日時書式指定子として解釈され、式エラーがスローされます。 1 つの書式指定子の使用の詳細については、この記事で後述する「 単一カスタム書式指定子の使用 を参照してください。
次の例では、カスタム書式指定文字列の中に "H" カスタム書式指定子が含まれます。
let
Source =
{
DateTime.ToText(#datetime(2024, 1, 1, 6, 9, 1), [Format = "H:mm:ss", Culture = ""])
// Displays 6:09:01
}
in
Source
"HH" カスタム書式指定子
"HH" カスタム書式指定子 (任意の数の "H" 指定子を追加可能) は、時間を 00 - 23 の数値として表します。つまり、午前 0 時から時間をカウントする 24 時間制で時間が表されます。 1 桁の時間は、先行ゼロ付きで書式設定されます。
次の例では、カスタム書式指定文字列の中に "HH" カスタム書式指定子が含まれます。
let
Source =
{
DateTime.ToText(#datetime(2024, 1, 1, 6, 9, 1), [Format = "HH:mm:ss", Culture = ""])
// Displays 06:09:01
}
in
Source
タイム ゾーン "K" 書式指定子
"K" カスタム書式指定子
"K" カスタム書式指定子は、日付と時刻の値のタイム ゾーン情報を表します。 この書式指定子を DateTimeZone 値と共に使用する場合、結果文字列は次のように定義されます。
ローカル タイム ゾーンの場合、クエリが Power Query Desktop で実行されている場合、この指定子は世界協定時刻 (UTC) からのローカル オフセットを含む結果文字列 (例: "-07:00") を生成します。 クエリが Power Query Online で実行されている場合、結果文字列は UTC 時刻 (つまり"+00:00") からのオフセットを生成しません。
UTC 時刻の場合、結果文字列は UTC 時刻からのオフセットを生成しません。つまり、UTC 日付を表す場合は "+00:00" です。
指定されていないタイム ゾーンからの時刻の場合、結果は空です。
"K" 書式指定子が他のカスタム書式指定子なしで使用されている場合は、標準の日時書式指定子として解釈され、式エラーがスローされます。 1 つの書式指定子の使用の詳細については、この記事で後述する「 単一カスタム書式指定子の使用 を参照してください。
次の例では、"K" カスタム書式指定子を使用し、米国太平洋タイム ゾーンのシステム上のさまざまな値を使用した結果の文字列を表示します。
let
Source =
{
DateTimeZone.ToText(DateTimeZone.LocalNow(),[Format="%K"]),
// Displays -07:00 (Desktop) or +00:00 (Online)
DateTimeZone.ToText(DateTimeZone.UtcNow(),[Format="%K"]),
// Displays +00:00
Text.Format("'#{0}'", {DateTime.ToText(DateTime.LocalNow(),[Format="%K"])})
// Displays ''
}
in
Source
Note
DateTimeZone.LocalNow によって返される値は、ローカル コンピューターで Power Query を実行しているかオンラインで実行しているかによって異なります。 たとえば、米国太平洋タイム ゾーンのシステム上の上記のサンプルでは、Power Query Desktop はローカル コンピューターで設定された時刻を読み取っているため、 -07:00
を返します。 ただし、Power Query Online は、クラウド仮想マシンで設定された時刻 (UTC に設定) を読み取っているため、 +00:00
を返します。
分 "m" 書式指定子
"m" カスタム書式指定子
"m" カスタム書式指定子は、分を 0 - 59 の数値として表します。 この分は、直前の時間から経過した分数です。 1 桁の分は、先行ゼロなしで書式設定されます。
"m" 書式指定子が単独で使用され、その他のカスタム書式指定子がない場合、"m" は標準の日時書式指定子として解釈されます。 1 つの書式指定子の使用の詳細については、この記事で後述する「 単一カスタム書式指定子の使用 を参照してください。
次の例では、カスタム書式指定文字列の中に "m" カスタム書式指定子が含まれます。
let
Source =
{
DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "h:m:s.F t", Culture = ""]),
// Displays 6:9:1 P
DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "h:m:s.F t", Culture = "el-GR"]),
// Displays 6:9:1 μ
DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "h:m:s.F t", Culture = ""]),
// Displays 9:18:1.5 A
DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "h:m:s.F t", Culture = "el-GR"])
// Displays 9:18:1.5 π
}
in
Source
"mm" カスタム書式指定子
"mm" カスタム書式指定子 (任意の数の "m" 指定子を追加可能) は、分を 00 - 59 の数値として表します。 この分は、直前の時間から経過した分数です。 1 桁の分は、先行ゼロ付きで書式設定されます。
次の例では、カスタム書式指定文字列の中に "mm" カスタム書式指定子が含まれます。
let
Source =
{
DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "hh:mm:ss tt", Culture = ""]),
// Displays 06:09:01 PM
DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "hh:mm:ss tt", Culture = "hu-HU"]),
// Displays 06:09:01 du.
DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "hh:mm:ss.ff tt", Culture = ""]),
// Displays 09:18:01.50 AM
DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "hh:mm:ss.ff tt", Culture = "hu-HU"])
// Displays 09:18:01.50 de.
}
in
Source
月 "M" 書式指定子
"M" カスタム書式指定子
"M" カスタム書式指定子は、月を 1 - 12 (13 の月がある暦の場合は 1 - 13) の数値として表します。 1 桁の月は、先行ゼロなしで書式設定されます。
"M" 書式指定子が単独で使用され、その他のカスタム書式指定子がない場合、"M" は標準の日時書式指定子として解釈されます。 1 つの書式指定子の使用の詳細については、この記事で後述する「 単一カスタム書式指定子の使用 を参照してください。
次の例では、カスタム書式指定文字列の中に "M" カスタム書式指定子が含まれます。
let
Source =
{
Date.ToText(#date(2024, 8, 18), [Format = "(M) MMM, MMMM", Culture = "en-US"]),
// Displays (8) Aug, August
Date.ToText(#date(2024, 8, 18), [Format = "(M) MMM, MMMM", Culture = "nl-NL"]),
// Displays (8) aug, augustus
Date.ToText(#date(2024, 8, 18), [Format = "(M) MMM, MMMM", Culture = "lv-LV"])
// Displays (8) aug., augusts
}
in
Source
"MM" カスタム書式指定子
"MM" カスタム書式指定子は、月を 01 - 12 (13 の月がある暦の場合は 01 - 13) の数値として表します。 1 桁の月は、先行ゼロ付きで書式設定されます。
次の例では、カスタム書式指定文字列の中に "MM" カスタム書式指定子が含まれます。
let
Source =
{
DateTime.ToText(#datetime(2024, 1, 2, 6, 30, 15), [Format = "dd, MM", Culture = ""])
// Displays 02, 01
}
in
Source
"MMM" カスタム書式指定子
"MMM" カスタム書式指定子は、月の省略名を表します。 月のローカライズされた省略名は、現在または指定されたカルチャの省略された月名から取得されます。 カスタム書式指定文字列に "d" または "dd" カスタム書式指定子がある場合、月名は代わりに省略された生成名から取得されます。
次の例では、カスタム書式指定文字列の中に "MMM" カスタム書式指定子が含まれます。
let
Source =
{
DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15), [Format = "ddd d MMM", Culture = "en-US"]),
// Displays Thu 29 Aug
DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15), [Format = "ddd d MMM", Culture = "fr-FR"])
// Displays jeu. 29 août
}
in
Source
"MMMM" カスタム書式指定子
"MMMM" カスタム書式指定子は、月の完全名を表します。 月のローカライズされた名前は、現在のカルチャまたは指定されたカルチャから取得されます。 カスタム書式指定文字列に "d" または "dd" カスタム書式指定子がある場合、月名は代わりに省略された生成名から取得されます。
次の例では、カスタム書式指定文字列の中に "MMMM" カスタム書式指定子が含まれます。
let
Source =
{
DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15), [Format = "dddd dd MMMM", Culture = "en-US"]),
// Displays Thursday 29 August
DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15), [Format = "dddd dd MMMM", Culture = "it-IT"])
// Displays giovedì 29 agosto
}
in
Source
秒 "s" 書式指定子
"s" カスタム書式指定子
"s" カスタム書式指定子は、秒を 0 - 59 の数値として表します。 この秒は、直前の分から経過した秒数です。 1 桁の秒は、先行ゼロなしで書式設定されます。
"s" 書式指定子が単独で使用され、その他のカスタム書式指定子がない場合、"s" は標準の日時書式指定子として解釈されます。 1 つの書式指定子の使用の詳細については、この記事で後述する「 単一カスタム書式指定子の使用 を参照してください。
次の例では、カスタム書式指定文字列の中に "s" カスタム書式指定子が含まれます。
let
Source =
{
DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "h:m:s.F t", Culture = ""]),
// Displays 6:9:1 P
DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "h:m:s.F t", Culture = "el-GR"]),
// Displays 6:9:1 μ
DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "h:m:s.F t", Culture = ""]),
// Displays 9:18:1.5 A
DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "h:m:s.F t", Culture = "el-GR"])
// Displays 9:18:1.5 π
}
in
Source
"ss" カスタム書式指定子
"ss" カスタム書式指定子 (任意の数の "s" 指定子を追加可能) は、秒を 00 - 59 の数値として表します。 この秒は、直前の分から経過した秒数です。 1 桁の秒は、先行ゼロ付きで書式設定されます。
次の例では、カスタム書式指定文字列の中に "ss" カスタム書式指定子が含まれます。
let
Source =
{
DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "hh:mm:ss tt", Culture = ""]),
// Displays 06:09:01 PM
DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "hh:mm:ss tt", Culture = "hu-HU"]),
// Displays 06:09:01 du.
DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "hh:mm:ss.ff tt", Culture = ""]),
// Displays 09:18:01.50 AM
DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "hh:mm:ss.ff tt", Culture = "hu-HU"])
// Displays 09:18:01.50 de.
}
in
Source
午前午後 "t" 書式指定子
"t" カスタム書式指定子
"t" カスタム書式指定子は、AM/PM 指定子の最初の文字を表します。 適切なローカライズされた指定子は、現在のカルチャまたは特定のカルチャから取得されます。 AM 指定子は、0:00:00 (午前 0 時) から 11:59:59.999 までのすべての時刻に使用されます。 PM 指定子は、12:00:00 (正午) から 23:59:59.999 までのすべての時刻に使用されます。
"t" 書式指定子が単独で使用され、その他のカスタム書式指定子がない場合、"t" は標準の日時書式指定子として解釈されます。 1 つの書式指定子の使用の詳細については、この記事で後述する「 単一カスタム書式指定子の使用 を参照してください。
次の例では、カスタム書式指定文字列の中に "t" カスタム書式指定子が含まれます。
let
Source =
{
DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "h:m:s.F t", Culture = ""]),
// Displays 6:9:1 P
DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "h:m:s.F t", Culture = "el-GR"]),
// Displays 6:9:1 μ
DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "h:m:s.F t", Culture = ""]),
// Displays 9:18:1.5 A
DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "h:m:s.F t", Culture = "el-GR"])
// Displays 9:18:1.5 π
}
in
Source
"tt" カスタム書式指定子
"tt" カスタム書式指定子 (任意の数の "t" 指定子を追加可能) は、AM/PM 指定子全体を表します。 適切なローカライズされた指定子は、現在のカルチャまたは特定のカルチャから取得されます。 AM 指定子は、0:00:00 (午前 0 時) から 11:59:59.999 までのすべての時刻に使用されます。 PM 指定子は、12:00:00 (正午) から 23:59:59.999 までのすべての時刻に使用されます。
AM と PM を区別する必要のある言語の場合、必ず "tt" 指定子を使用する必要があります。 たとえば、日本語の場合、AM/PM 指定子の 2 番目の文字は異なりますが、先頭文字は同じです。
次の例では、カスタム書式指定文字列の中に "tt" カスタム書式指定子が含まれます。
let
Source =
{
DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "hh:mm:ss tt", Culture = ""]),
// Displays 06:09:01 PM
DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "hh:mm:ss tt", Culture = "hu-HU"]),
// Displays 06:09:01 du.
DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "hh:mm:ss.ff tt", Culture = ""]),
// Displays 09:18:01.50 AM
DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "hh:mm:ss.ff tt", Culture = "hu-HU"])
// Displays 09:18:01.50 de.
}
in
Source
年 "y" 書式指定子
"y" カスタム書式指定子
"y" カスタム書式指定子は、年を 1 桁または 2 桁の数値として表します。 年が 2 桁を超える場合は、下 2 桁のみが結果に表示されます。 2 桁の年の 1 桁目がゼロで始まる場合 (2008 など)、先行ゼロが省略されます。
"y" 書式指定子が単独で使用され、その他のカスタム書式指定子がない場合、"y" は標準の日時書式指定子として解釈されます。 1 つの書式指定子の使用の詳細については、この記事で後述する「 単一カスタム書式指定子の使用 を参照してください。
次の例では、カスタム書式指定文字列の中に "y" カスタム書式指定子が含まれます。
let
Source =
{
Date.ToText(#date(1, 12, 1), [Format = "%y"]),
// Displays 1
Date.ToText(#date(2024, 1, 1), [Format = "%y"])
// Displays 24
}
in
Source
"yy" カスタム書式指定子
"yy" カスタム書式指定子は、年を 2 桁の数値として表します。 年が 2 桁を超える場合は、下 2 桁のみが結果に表示されます。 年が 2 桁に満たない場合は、2 桁になるまで数値が先行ゼロで埋められます。
解析操作では、"yy" カスタム書式指定子を使用して解析される 2 桁の年が、書式プロバイダーの現在のカレンダーに基づいて解釈されます。 次の例は、このケースでは現在のカルチャである en-US カルチャの既定のグレゴリオ暦を使用して、2 桁の年を持つ日付の文字列形式を解析します。 4 桁の日付に対して返される値は、オペレーティング システムによって設定された 100 年の範囲によって異なります。
let
// Define the date format and value
fmt = "dd-MMM-yy",
// Convert year 49 to a 4-digit year
firstDate = Text.Format("#{0}", { Date.FromText("24-Jan-49", [Format = fmt]) }),
// Convert year 50 to a 4-digit year
finalDate = Text.Format("#{0}", { Date.FromText("24-Jan-50", [Format = fmt]) }),
Heading = "Default Two Digit Year Range: 1950 - 2049",
result = {Heading, firstDate, finalDate}
in
result
// The example displays the following output:
// Default Two Digit Year Range: 1950 - 2049
// 1/24/2049
// 1/24/1950
次の例では、カスタム書式指定文字列の中に "yy" カスタム書式指定子が含まれます。
let
Source =
{
Date.ToText(#date(1, 12, 1), [Format = "yy"]),
// Displays 01
Date.ToText(#date(2024, 1, 1), [Format = "yy"])
// Displays 24
}
in
Source
"yyy" カスタム書式指定子
"yyy" カスタム書式指定子は、年を 3 桁以上で表します。 年が 3 桁を超える場合は、それらの数字も結果に含まれます。 年が 3 桁に満たない場合は、3 桁になるまで数値が先行ゼロで埋められます。
Note
年が 5 桁になることがあるタイ仏暦については、この書式指定子ですべての有効桁が表示されます。
次の例では、カスタム書式指定文字列の中に "yyy" カスタム書式指定子が含まれます。
let
Source =
{
Date.ToText(#date(1, 12, 1), [Format = "yyy"]),
// Displays 001
Date.ToText(#date(2024, 1, 1), [Format = "yyy"])
// Displays 2024
}
in
Source
"yyyy" カスタム書式指定子
"yyyy" カスタム書式指定子は、年を 4 桁以上で表します。 年が 4 桁を超える場合は、それらの数字も結果に含まれます。 年が 4 桁に満たない場合は、4 桁になるまで数値が先行ゼロで埋められます。
Note
年が 5 桁になることがあるタイ仏暦については、この書式指定子で 4 桁以上が表示されます。
次の例では、カスタム書式指定文字列の中に "yyyy" カスタム書式指定子が含まれます。
let
Source =
{
Date.ToText(#date(1, 12, 1), [Format = "yyyy"]),
// Displays 0001
Date.ToText(#date(2024, 1, 1), [Format = "yyyy"])
// Displays 2024
}
in
Source
"yyyyy" カスタム書式指定子
"yyyyy" カスタム書式指定子 (任意の数の "y" 指定子を追加可能) は、年を 5 桁以上で表します。 年が 5 桁を超える場合は、それらの数字も結果に含まれます。 年が 5 桁に満たない場合は、5 桁になるまで数値が先行ゼロで埋められます。
"y" 指定子を追加すると、"y" 指定子の数と同じ桁数になるまで数値が先行ゼロで埋められます。
次の例では、カスタム書式指定文字列の中に "yyyyy" カスタム書式指定子が含まれます。
let
Source =
{
Date.ToText(#date(1, 12, 1), [Format = "yyyyy"]),
// Displays 00001
Date.ToText(#date(2024, 1, 1), [Format = "yyyyy"])
// Displays 02024
}
in
Source
オフセット "z" 書式指定子
"z" カスタム書式指定子
DateTimeZone 値を使用すると、"z" カスタム書式指定子は、指定したタイム ゾーンの協定世界時 (UTC) からの符号付きオフセットを時間単位で表します。 このオフセットは、常に先頭の符号と共に表示されます。 正符号 (+) は UTC より時間が進んでいることを示し、負符号 (-) は UTC より時間が遅れていることを示します。 1 桁のオフセットは、先行ゼロ "なしで" 書式設定されます。
次の表は、 DateTimeZone 関数によってオフセット値がどのように変化するかを示しています。
DateTimeZone 値 | オフセット値 |
---|---|
DateTimeZone.LocalNow | Power Query Desktop では、UTC からのローカル オペレーティング システムのタイム ゾーンの符号付きオフセット。 Power Query Online では、 +00 を返します。 |
DateTimeZone.UtcNow |
+0 を返します。 |
"z" 書式指定子が他のカスタム書式指定子なしで使用されている場合は、標準の日時書式指定子として解釈され、式エラーがスローされます。 1 つの書式指定子の使用の詳細については、この記事で後述する「 単一カスタム書式指定子の使用 を参照してください。
次の例では、"z" カスタム書式指定子を、米国太平洋タイム ゾーンのシステム上のカスタム書式指定文字列に含めます。
let
Source =
{
DateTimeZone.ToText(DateTimeZone.LocalNow(), [Format="{0:%z}"]),
// Displays {0:-7} on Power Query Desktop
// Displays {0:+0} on Power Query Online
DateTimeZone.ToText(DateTimeZone.UtcNow(),[Format="{0:%z}"]),
// Displays {0:+0}
DateTimeZone.ToText(DateTimeZone.SwitchZone(
#datetimezone(2024, 8, 1, 0, 0, 0, 0, 0), 6),
[Format = "{0:%z}"]
)
// Displays {0:+6}
}
in
Source
Note
DateTimeZone.LocalNow によって返される値は、ローカル コンピューターで Power Query を実行しているかオンラインで実行しているかによって異なります。 たとえば、米国太平洋タイム ゾーンのシステム上の上記のサンプルでは、Power Query Desktop はローカル コンピューターで設定された時刻を読み取っているため、 {0:-7}
を返します。 ただし、Power Query Online は、クラウド仮想マシンで設定された時刻 (UTC に設定) を読み取っているため、 {0:+0}
を返します。
"zz" カスタム書式指定子
DateTimeZone値を使用すると、"zz" カスタム書式指定子は、指定したタイム ゾーンの UTC からの符号付きオフセットを時間単位で表します。 このオフセットは、常に先頭の符号と共に表示されます。 正符号 (+) は UTC より時間が進んでいることを示し、負符号 (-) は UTC より時間が遅れていることを示します。 1 桁のオフセットは、先行ゼロ "付きで" 書式設定されます。
次の表は、 DateTimeZone 関数によってオフセット値がどのように変化するかを示しています。
DateTimeZone 値 | オフセット値 |
---|---|
DateTimeZone.LocalNow | Power Query Desktop では、UTC からのローカル オペレーティング システムのタイム ゾーンの符号付きオフセット。 Power Query Online では、 +00 を返します。 |
DateTimeZone.UtcNow |
+00 を返します。 |
次の例では、"zz" カスタム書式指定子を、米国太平洋タイム ゾーンのシステム上のカスタム書式指定文字列に含めます。
let
Source =
{
DateTimeZone.ToText(DateTimeZone.LocalNow(), [Format="{0:zz}"]),
// Displays {0:-07} on Power Query Desktop
// Displays {0:+00} on Power Query Online
DateTimeZone.ToText(DateTimeZone.UtcNow(),[Format="{0:zz}"]),
// Displays {0:+00}
DateTimeZone.ToText(DateTimeZone.SwitchZone(
#datetimezone(2024, 8, 1, 0, 0, 0, 0, 0), 6),
[Format = "{0:zz}"]
)
// Displays {0:+06}
}
in
Source
Note
DateTimeZone.LocalNow によって返される値は、ローカル コンピューターで Power Query を実行しているかオンラインで実行しているかによって異なります。 たとえば、米国太平洋タイム ゾーンのシステム上の上記のサンプルでは、Power Query Desktop はローカル コンピューターで設定された時刻を読み取っているため、 {0:-07}
を返します。 ただし、Power Query Online は、クラウド仮想マシンで設定された時刻 (UTC に設定) を読み取っているため、 {0:+00}
を返します。
"zzz" カスタム書式指定子
DateTimeZone値を使用すると、"zzz" カスタム書式指定子は、指定したタイム ゾーンの UTC からの符号付きオフセットを時間と分で表します。 このオフセットは、常に先頭の符号と共に表示されます。 正符号 (+) は UTC より時間が進んでいることを示し、負符号 (-) は UTC より時間が遅れていることを示します。 1 桁のオフセットは、先行ゼロ付きで書式設定されます。
次の表は、 DateTimeZone 関数によってオフセット値がどのように変化するかを示しています。
DateTimeZoneValue 値 | オフセット値 |
---|---|
DateTimeZone.LocalNow | Power Query Desktop では、UTC からのローカル オペレーティング システムのタイム ゾーンの符号付きオフセット。 Power Query Online では、 +00 を返します。 |
DateTimeZone.UtcNow |
+00:00 を返します。 |
次の例では、"zzz" カスタム書式指定子を、米国太平洋タイム ゾーンのシステム上のカスタム書式指定文字列に含めます。
let
Source =
{
DateTimeZone.ToText(DateTimeZone.LocalNow(), [Format="{0:zzz}"]),
// Displays {0:-07:00} on Power Query Desktop
// Displays {0:+00:00} on Power Query Online
DateTimeZone.ToText(DateTimeZone.UtcNow(),[Format="{0:zzz}"]),
// Displays {0:+00:00}
DateTimeZone.ToText(DateTimeZone.SwitchZone(
#datetimezone(2024, 8, 1, 0, 0, 0, 0, 0), 6),
[Format = "{0:zzz}"]
)
// Displays {0:+06:00}
}
in
Source
Note
DateTimeZone.LocalNow によって返される値は、ローカル コンピューターで Power Query を実行しているかオンラインで実行しているかによって異なります。 たとえば、米国太平洋タイム ゾーンのシステム上の上記のサンプルでは、Power Query Desktop はローカル コンピューターで設定された時刻を読み取っているため、 {0:-07:00}
を返します。 ただし、Power Query Online は、クラウド仮想マシンで設定された時刻 (UTC に設定) を読み取っているため、 {0:+00:00}
を返します。
日付と時刻の区切り記号指定子
":" カスタム書式指定子
":" カスタム書式指定子は、時、分、および秒を区別するための時刻の区切り記号を表します。 適切なローカライズされた時刻区切り記号は、現在のカルチャまたは指定されたカルチャから取得されます。
Note
特定の日付と時刻の文字列について時刻の区切り記号を変更するには、リテラル文字列の区切り記号内に区切り記号を指定します。 たとえば、カスタム書式指定文字列 hh_dd_ss
は、常に時刻の区切り記号として "_" (アンダースコア) が使用される結果文字列を生成します。
":" 書式指定子が他のカスタム書式指定子なしで使用されている場合は、標準の日時書式指定子として解釈され、式エラーがスローされます。 1 つの書式指定子の使用の詳細については、この記事で後述する「 単一カスタム書式指定子の使用 を参照してください。
"/" カスタム書式指定子
"/" カスタム書式指定子は、年、月、および日を区別するための日付の区切り記号を表します。 適切なローカライズされた日付区切り記号は、現在のカルチャまたは指定されたカルチャから取得されます。
Note
特定の日付と時刻の文字列について日付の区切り記号を変更するには、リテラル文字列の区切り記号内に区切り記号を指定します。 たとえば、カスタム書式指定文字列 mm/dd/yyyy
は、常に日付の区切り記号として "/" が使用される結果文字列を生成します。
"/" 書式指定子が他のカスタム書式指定子なしで使用されている場合は、標準の日時書式指定子として解釈され、式エラーがスローされます。 1 つの書式指定子の使用の詳細については、この記事で後述する「 単一カスタム書式指定子の使用 を参照してください。
文字リテラル
次のカスタム日時書式文字列の文字は予約済みで、常に書式設定文字として解釈されます。または"
、'
、/
、\
の場合は、特殊文字として解釈されます。
F
H
K
M
d
f
g
h
m
s
t
y
z
%
:
/
"
'
\
その他の文字はすべて、文字リテラルとして常に解釈され、書式設定操作では、変更されずに結果の文字列に含まれます。 解析操作では、これらは入力文字列の文字と完全に一致している必要があります。比較では大文字小文字を区別します。
次の例には、書式指定文字列でローカル タイム ゾーンを表すため、リテラル文字 "PST" (太平洋標準時) と "PDT" (太平洋夏時間)が含まれています。 文字列は結果の文字列に含まれ、ローカル タイム ゾーン文字列を含む文字列も正常に解析することに注意してください。
let
#"Date Formats" = {"dd MMM yyyy hh:mm tt PST", "dd MMM yyyy hh:mm tt PDT"},
Source =
{
DateTime.ToText(#datetime(2024, 8, 18, 16, 50, 0), [Format = #"Date Formats"{1}]),
try DateTime.ToText(DateTime.FromText(
"25 Dec 2023 12:00 pm PST", [Format = #"Date Formats"{0}]))
otherwise "Unable to parse '" & "25 Dec 2023 12:00 pm PST" & "'"
}
in
Source
// The example displays the following output text:
// 18 Aug 2024 04:50 PM PDT
// 12/25/2023 12:00:00 PM
文字が結果の文字列に含まれるように、または入力文字列で正常に解析されるように、文字が予約文字としてではなく、リテラル文字として解釈されることを示すには、次の 2 つの方法があります。
予約済みの各文字をエスケープします。 詳細については、「 エスケープ シーケンスの使用を参照してください。
次の例には、書式指定文字列でローカル タイム ゾーンを表すため、リテラル文字 "pst"(太平洋標準時間) が含まれています。 "s" と "t" はどちらもカスタム書式指定文字列であるため、どちらの文字も文字リテラルとして解釈されるにはエスケープする必要があります。
let #"Date Format" = "dd MMM yyyy hh:mm tt p's''t'", Source = { DateTime.ToText(#datetime(2024, 8, 18, 16, 50, 0), [Format = #"Date Format"]), try DateTime.ToText(DateTime.FromText( "25 Dec 2023 12:00 pm pst", [Format = #"Date Format"])) otherwise "Unable to parse '" & "25 Dec 2023 12:00 pm pst" & "'" } in Source // The example displays the following output text: // 18 Aug 2024 04:50 PM pst // 12/25/2016 12:00:00 PM
リテラル文字列全体をアポストロフィで囲みます。 次の例は前の例と似ていますが、"pst" はアポストロフィで囲んで、区切られた文字列全体を文字リテラルとして解釈する必要があることを示しています。
let #"Date Format" = "dd MMM yyyy hh:mm tt 'pst'", Source = { DateTime.ToText(#datetime(2024, 8, 18, 16, 50, 0), [Format = #"Date Format"]), try DateTime.ToText(DateTime.FromText( "25 Dec 2023 12:00 pm pst", [Format = #"Date Format"])) otherwise "Unable to parse '" & "25 Dec 2023 12:00 pm pst" & "'" } in Source // The example displays the following output text: // 18 Aug 2024 04:50 PM pst // 12/25/2016 12:00:00 PM
メモ
単一のカスタム書式指定子の使用
カスタム日時書式指定文字列は、複数の文字で構成されます。 日時書式指定メソッドでは、1 文字の文字列が標準の日時書式指定文字列として解釈されます。 文字が有効な書式指定子として認識されない場合は、式エラーがスローされます。 たとえば、"h" 指定子のみで構成される書式指定文字列は、標準の日時書式指定文字列として解釈されます。 ただし、この場合では、"h" という標準の日時書式指定子が存在しないため、例外がスローされます。
カスタム日時書式指定子のいずれかを書式指定文字列内の唯一の指定子として使用するには (つまり、"d"、"f"、"F"、"g"、"h"、"H"、"K"、"m"、"M"、"s"、"t"、"y"、"z"、":"、"/" のいずれかのカスタム書式指定子を単体で使用するには)、指定子の前または後に空白を挿入するか、または単一のカスタム日時指定子の前にパーセント ("%") 書式指定子を挿入します。
たとえば、"%h
" は、現在の日時値が表す時要素を表示するカスタム日時書式指定文字列として解釈されます。 また、" h" または "h " の各書式指定文字列も使用できますが、書式設定後の文字列に時間と共に空白が挿入されます。 これらの 3 つの書式指定文字列の例を次に示します。
let
date = #datetime(2024, 6, 15, 13, 45, 0),
Source =
{
Text.Format("'#{0}'", {DateTime.ToText(date, [Format = "%h"])}),
Text.Format("'#{0}'", {DateTime.ToText(date, [Format = " h"])}),
Text.Format("'#{0}'", {DateTime.ToText(date, [Format = "h "])})
}
in
Source
// The example displays a list with the following output text,
// with <sp> representing a space:
// '1'
// ' 1'
// '1 '
エスケープ シーケンスの使用
書式指定文字列内の "d"、"f"、"F"、"g"、"h"、"H"、"K"、"m"、"M"、"s"、"t"、"y"、"z"、":"、"/" の各文字は、リテラル文字ではなくカスタム書式指定子として解釈されます。
文字が書式指定子として解釈されないようにするには、次の手順を実行します。
- その前に円記号を付けます。
- 単一引用符で囲みます。
- 2 つの二重引用符で囲みます。
これらの文字はそれぞれエスケープ シーケンスとして機能します。 エスケープ シーケンスは、次の文字または囲まれた文字が、変更せずに結果文字列に含める必要があるテキスト リテラルであることを示します。
結果文字列に二重引用符を含めるには、別の二重引用符 (""
) でエスケープする必要があります。
次の例では、さまざまなエスケープ シーケンスを使用して、書式設定操作で "h" 文字と "m" 文字が書式指定子として解釈されないようにします。
let
date = #datetime(2024, 6, 15, 13, 45, 30.90),
format1 = "h \h m \m",
format2 = "h ""h"" m ""m""",
format3 = "h 'h' m 'm'",
Source =
{
Text.Format("#{0} (#{1}) -> #{2}", {DateTime.ToText(date), format1, DateTime.ToText(date, format1)}),
Text.Format("#{0} (#{1}) -> #{2}", {DateTime.ToText(date), format2, DateTime.ToText(date, format2)}),
Text.Format("#{0} (#{1}) -> #{2}", {DateTime.ToText(date), format3, DateTime.ToText(date, format3)})
}
in
Source
// The example displays the following output text:
// 6/15/2024 1:45:30 PM (h \h m \m) -> 1 h 45 m
// 6/15/2024 1:45:30 PM (h "h" m "m") -> 1 h 45 m
// 6/15/2024 1:45:30 PM (h 'h' m 'm') -> 1 h 45 m