自訂日期和時間格式字串
日期和時間格式字串會定義格式化作業所產生的 Date、DateTime、DateTimeZone 或 Time 值的文字表示。 另外還會定義剖析作業所需日期和時間值的表示,以便成功地將字串轉換成日期和時間。 自訂格式字串是由一個或多個自訂日期和時間格式規範所組成。 任何不是標準日期和時間格式字串的 字串 ,會解譯為自定義日期和時間格式字串。
在格式化作業中,自定義日期和時間格式字串可以搭配 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 函式使用。 這些函式會要求輸入字串完全符合特定模式,剖析作業才能成功。 下列範例說明呼叫 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 文化特性的格式設定慣例。 如果特定格式規範會產生當地語系化的結果字串,則範例也會註明結果字串適用的文化特性。 如需使用自定義日期和時間格式字串的詳細資訊,請移至 [附注] 區段。
格式規範 | 描述 | 範例 |
---|---|---|
"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 -> 星期一 (en-US) 2009-06-15T13:45:30 -> понедельник (ru-RU) 2009-06-15T13:45:30 -> lundi (fr-FR) |
"f" | 日期和時間值中的十分之一秒。 詳細資訊: “f” 自定義格式規範。 |
2009-06-15T13:45:30.6170000 -> 6 2009-06-15T13:45:30.05 -> 0 |
"ff" | 日期和時間值中的百分之一秒。 詳細資訊: “ff” 自定義格式規範。 |
2009-06-15T13:45:30.6170000 -> 61 2009-06-15T13:45:30.0050000 -> 00 |
"fff" | 日期和時間值中的千分之一秒。 詳細資訊: “fff” 自定義格式規範。 |
6/15/2009 13:45:30.617 -> 617 6/15/2009 13:45:30.0005 -> 000 |
"ffff" | 日期和時間值中的萬分之一秒。 詳細資訊: “ffff” 自定義格式規範。 |
2009-06-15T13:45:30.6175000 -> 6175 2009-06-15T13:45:30.0000500 -> 0000 |
"fffff" | 日期和時間值中的十萬分之一秒。 詳細資訊: “fffff” 自定義格式規範。 |
2009-06-15T13:45:30.6175400 -> 61754 6/15/2009 13:45:30.000005 -> 00000 |
"ffffff" | 日期和時間值中的百萬分之一秒。 詳細資訊: “ffffff” 自定義格式規範。 |
2009-06-15T13:45:30.6175420 -> 617542 2009-06-15T13:45:30.0000005 -> 000000 |
"fffffff" | 日期和時間值中的千萬分之一秒。 詳細資訊: “fffffff” 自定義格式規範。 |
2009-06-15T13:45:30.6175425 -> 6175425 2009-06-15T13:45:30.0001150 -> 0001150 |
"F" | 如果不是零,則為日期和時間值中的十分之一秒。 詳細資訊: “F” 自定義格式規範。 |
2009-06-15T13:45:30.6170000 -> 6 2009-06-15T13:45:30.0500000 -> (無輸出) |
"FF" | 如果不是零,則為日期和時間值中的百分之一秒。 詳細資訊: “FF” 自定義格式規範。 |
2009-06-15T13:45:30.6170000 -> 61 2009-06-15T13:45:30.0050000 -> (無輸出) |
"FFF" | 如果不是零,則為日期和時間值中的千分之一秒。 詳細資訊: “FFF” 自定義格式規範。 |
2009-06-15T13:45:30.6170000 -> 617 2009-06-15T13:45:30.0005000 -> (無輸出) |
"FFFF" | 如果不是零,則為日期和時間值中的萬分之一秒。 詳細資訊: “FFFF” 自定義格式規範。 |
2009-06-15T13:45:30.5275000 -> 5275 2009-06-15T13:45:30.0000500 -> (無輸出) |
"FFFFF" | 如果不是零,則為日期和時間值中的十萬分之一秒。 詳細資訊: “FFFFF” 自定義格式規範。 |
2009-06-15T13:45:30.6175400 -> 61754 2009-06-15T13:45:30.0000050 -> (無輸出) |
"FFFFFF" | 如果不是零,則為日期和時間值中的百萬分之一秒。 詳細資訊: “FFFFFF” 自定義格式規範。 |
2009-06-15T13:45:30.6175420 -> 617542 2009-06-15T13:45:30.0000005 -> (無輸出) |
"FFFFFFF" | 如果不是零,則為日期和時間值中的千萬分之一秒。 詳細資訊: “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, 未指定 -> 2009-06-15T13:45:30,Utc -> +00:00 2009-06-15T13:45:30,本機 -> -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 -> 6 月 (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" | 年份,至少三位數。 詳細資訊: “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" | 以四位數表示的年份。 詳細資訊: “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" | 以五位數表示的年份。 詳細資訊: “yyyyy” 自定義格式規範。 |
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 相差的時數,單一位數值會加上前置零。 詳細資訊: “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) |
"string" '字串' |
常值字串分隔符號。 詳細資訊︰字元常值。 |
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 |
\, "", ' | 逸出序列。 詳細資訊: 字元常值 和使用 逸出序列。 |
2009-06-15T13:45:30 (h \h) -> 1 小時 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 值搭配使用。
Day “d” 格式規範
"d" 自訂格式規範
“d” 自定義格式規範以 1 到 31 的數位表示月份的日期。 單一位數的天數會格式化為沒有前置零的數字。
如果單獨使用 "d" 格式規範,而沒有其他自訂格式規範,則會將它解譯為 "d" 標準日期和時間格式規範。 如需使用單一格式規範的詳細資訊,請移至 本文稍後的使用單一自定義格式規範 。
下列範例會在幾個格式字串中加入 "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 的數位來表示月份的日期。 單一位數的天數會格式化為有前置零的數字。
下列範例會在自訂格式字串中加入 "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" 自訂格式規範表示秒數的一位有效小數位數,也就是說,它表示日期和時間值中的十分之一秒。
如果單獨使用 "f" 格式規範,而沒有其他格式規範,則會將它解譯為 "f" 標準日期和時間格式規範。 如需使用單一格式規範的詳細資訊,請移至 本文稍後的使用單一自定義格式規範 。
當您使用 「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" 自訂格式規範表示秒數的兩位有效小數位數,也就是說,它表示日期和時間值中的百分之一秒。
下列範例會在自訂格式字串中加入 "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" 自訂格式規範表示秒數的三位有效小數位數,也就是說,它表示日期和時間值中的千分之一秒。
下列範例會在自訂格式字串中加入 "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" 自訂格式規範表示秒數的四位有效小數位數,也就是說,它表示日期和時間值中的萬分之一秒。
雖然可以顯示時間值的十萬分之一秒元件,但該值可能沒有意義。 日期和時間值的精確度會根據系統時鐘的解析度而定。 在 Windows Server 2019 和 Windows 11 操作系統上,時鐘解析度約為 1 毫秒。
"fffff" 自訂格式規範
"fffff" 自訂格式規範表示秒數的五位有效小數位數,也就是說,它表示日期和時間值中的十萬分之一秒。
雖然可以顯示時間值的十萬分之一秒元件,但該值可能沒有意義。 日期和時間值的精確度會根據系統時鐘的解析度而定。 在 Windows Server 2019 和 Windows 11 操作系統上,時鐘解析度約為 1 毫秒。
"ffffff" 自訂格式規範
"ffffff" 自訂格式規範表示秒數的六位有效小數位數,也就是說,它表示日期和時間值中的百萬分之一秒。
雖然可以顯示時間值的第二個元件數百萬分之一,但該值可能沒有意義。 日期和時間值的精確度會根據系統時鐘的解析度而定。 在 Windows Server 2019 和 Windows 11 操作系統上,時鐘解析度約為 1 毫秒。
"fffffff" 自訂格式規範
"fffffff" 自訂格式規範表示秒數的七位有效小數位數,也就是說,它表示日期和時間值中的千萬分之一秒。
雖然可以顯示時間值第二個元件中的千萬分之一,但該值可能沒有意義。 日期和時間值的精確度會根據系統時鐘的解析度而定。 在 Windows Server 2019 和 Windows 11 操作系統上,時鐘解析度約為 1 毫秒。
大寫秒數 「F」 分數規範
"F" 自訂格式規範
"F" 自訂格式規範表示秒數的一位有效小數位數,也就是說,它表示日期和時間值中的十分之一秒。 如果數位為零,則不會顯示任何專案,而且不會顯示緊接在秒數後面的小數點。
如果單獨使用 "F" 格式規範,而沒有其他格式規範,則會將它解譯為 "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" 自訂格式規範表示秒數的兩位有效小數位數,也就是說,它表示日期和時間值中的百分之一秒。 不會顯示尾端零。 如果兩個有效位數為零,則不會顯示任何專案,在此情況下,也不會顯示緊隨秒數的小數點。
下列範例會在自訂格式字串中加入 "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" 自訂格式規範表示秒數的三位有效小數位數,也就是說,它表示日期和時間值中的千分之一秒。 不會顯示尾端零。 如果三個有效位數為零,則不會顯示任何專案,在此情況下,也不會顯示緊隨秒數的小數點。
下列範例會在自訂格式字串中加入 "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" 自訂格式規範表示秒數的四位有效小數位數,也就是說,它表示日期和時間值中的萬分之一秒。 不會顯示尾端零。 如果四個有效位數為零,則不會顯示任何專案,在此情況下,也不會顯示緊隨秒數的小數點。
雖然可以顯示時間值的十萬分之一秒元件,但該值可能沒有意義。 日期和時間值的精確度會根據系統時鐘的解析度而定。 在 Windows Server 2019 和 Windows 11 操作系統上,時鐘解析度約為 1 毫秒。
"FFFFF" 自訂格式規範
"FFFFF" 自訂格式規範表示秒數的五位有效小數位數,也就是說,它表示日期和時間值中的十萬分之一秒。 不會顯示尾端零。 如果五個有效位數為零,則不會顯示任何專案,在此情況下,也不會顯示緊隨秒數的小數點。
雖然可以顯示時間值的十萬分之一秒元件,但該值可能沒有意義。 日期和時間值的精確度會根據系統時鐘的解析度而定。 在 Windows Server 2019 和 Windows 11 操作系統上,時鐘解析度約為 1 毫秒。
"FFFFFF" 自訂格式規範
"FFFFFF" 自訂格式規範表示秒數的六位有效小數位數,也就是說,它表示日期和時間值中的百萬分之一秒。 不會顯示尾端零。 如果六個有效位數為零,則不會顯示任何專案,在此情況下,也不會顯示緊接秒數的小數點。
雖然可以顯示時間值的第二個元件數百萬分之一,但該值可能沒有意義。 日期和時間值的精確度會根據系統時鐘的解析度而定。 在 Windows Server 2019 和 Windows 11 操作系統上,時鐘解析度約為 1 毫秒。
"FFFFFFF" 自訂格式規範
"FFFFFFF" 自訂格式規範表示秒數的七位有效小數位數,也就是說,它表示日期和時間值中的千萬分之一秒。 不會顯示尾端零。 如果七個有效位數為零,則不會顯示任何專案,在此情況下,也不會顯示緊隨秒數的小數點。
雖然可以顯示時間值第二個元件中的千萬分之一,但該值可能沒有意義。 日期和時間值的精確度會根據系統時鐘的解析度而定。 在 Windows Server 2019 和 Windows 11 操作系統上,時鐘解析度約為 1 毫秒。
紀元 “g” 格式規範
"g" 或 "gg" 自訂格式規範
“g” 或 “gg” 自定義格式規範(加上任何數目的額外 “g” 規範)代表句點或紀元,例如 A.D。如果要格式化的日期沒有相關聯的句點或紀元字串,則格式化作業會忽略此規範。
如果單獨使用 "g" 格式規範,而沒有其他自訂格式規範,則會將它解譯為 "g" 標準日期和時間格式規範。 如需使用單一格式規範的詳細資訊,請移至 本文稍後的使用單一自定義格式規範 。
下列範例會在自訂格式字串中加入 "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 的數位表示小時;也就是說,小時是以 12 小時制來表示,以計算從午夜或中午起算的整個小時數。 午夜後的特定小時與下午的相同小時會難以區分。 小時不會四捨五入,而且單一位數的小時會格式化,而沒有前置零。 例如,假設時間為上午或下午 5:43,則此自訂格式規範會顯示 "5"。
如果在不使用其他自定義格式規範的情況下使用 「h」 格式規範,則會將其解譯為標準日期和時間格式規範,並擲回表達式錯誤。 如需使用單一格式規範的詳細資訊,請移至 本文稍後的使用單一自定義格式規範 。
下列範例會在自訂格式字串中加入 "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 的數位表示小時:也就是說,小時是以 12 小時制來表示,以計算從午夜或中午起算的整個小時數。 午夜後的特定小時與下午的相同小時會難以區分。 小時不會四捨五入,而單一位數的小時會格式化為前置零。 例如,假設時間為上午或下午 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 的數位表示小時;也就是說,小時是以零起始的 24 小時制來表示,以計算午夜以來的小時數。 單一位數的小時會格式化為沒有前置零的數字。
如果在不使用其他自定義格式規範的情況下使用 「H」 格式規範,則會將其解譯為標準日期和時間格式規範,並擲回表達式錯誤。 如需使用單一格式規範的詳細資訊,請移至 本文稍後的使用單一自定義格式規範 。
下列範例會在自訂格式字串中加入 "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 的數位表示小時:也就是說,小時是以零起始的 24 小時制來表示,以計算午夜以來的小時數。 單一位數的小時會格式化為具有前置零的數字。
下列範例會在自訂格式字串中加入 "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時間的位移;也就是 +00:00 表示UTC 日期。
從未指定的時區一段時間,結果會是空的。
如果在不使用其他自定義格式規範的情況下使用 「K」 格式規範,則會將其解譯為標準日期和時間格式規範,並擲回表達式錯誤。 如需使用單一格式規範的詳細資訊,請移至 本文稍後的使用單一自定義格式規範 。
下列範例會顯示使用 「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
注意
DateTimeZone.LocalNow 傳回的值取決於您是在本機電腦或在線執行Power Query。 例如,在美國太平洋時區系統上的上述範例中,Power Query Desktop 會傳 -07:00
回 ,因為它正在讀取本機計算機上設定的時間。 不過,Power Query Online 會傳 +00:00
回 ,因為它正在讀取雲端虛擬機上設定的時間,這些時間設定為 UTC。
分鐘 「m」 格式規範
"m" 自訂格式規範
“m” 自定義格式規範會將分鐘表示為 0 到 59 的數位。 分鐘表示自上個整點以來已經過的完整分鐘數。 單一位數的分鐘會格式化為沒有前置零的數字。
如果單獨使用 "m" 格式規範,而沒有其他自訂格式規範,則會將它解譯為 "m" 標準日期和時間格式規範。 如需使用單一格式規範的詳細資訊,請移至 本文稍後的使用單一自定義格式規範 。
下列範例會在自訂格式字串中加入 "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 的數位表示分鐘。 分鐘表示自上個整點以來已經過的完整分鐘數。 單一位數的分鐘會格式化為具有前置零的數字。
下列範例會在自訂格式字串中加入 "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 的數位(或從 1 到 13 代表具有 13 個月的行事歷)。 單一位數的月份會格式化為沒有前置零的數字。
如果單獨使用 "M" 格式規範,而沒有其他自訂格式規範,則會將它解譯為 "M" 標準日期和時間格式規範。 如需使用單一格式規範的詳細資訊,請移至 本文稍後的使用單一自定義格式規範 。
下列範例會在自訂格式字串中加入 "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 的數位(或從 1 到 13 代表具有 13 個月的行事歷)。 單一位數的月份會格式化為有前置零的數字。
下列範例會在自訂格式字串中加入 "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」 自定義格式規範,則會改為從縮寫的 Genitive 名稱擷取月份名稱。
下列範例會在自訂格式字串中加入 "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」 自定義格式規範,則會改為從縮寫的 Genitive 名稱擷取月份名稱。
下列範例會在自訂格式字串中加入 "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 的數位表示秒。 結果表示自上個分鐘以來已經過的完整秒數。 單一位數的秒數會格式化為沒有前置零的數字。
如果單獨使用 "s" 格式規範,而沒有其他自訂格式規範,則會將它解譯為 "s" 標準日期和時間格式規範。 如需使用單一格式規範的詳細資訊,請移至 本文稍後的使用單一自定義格式規範 。
下列範例會在自訂格式字串中加入 "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 的數位表示秒。 結果表示自上個分鐘以來已經過的完整秒數。 單一位數的秒數會格式化為具有前置零的數字。
下列範例會在自訂格式字串中加入 "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
Meridiem 「t」 格式規範
"t" 自訂格式規範
"t" 自訂格式規範表示 AM/PM 指示項的第一個字元。 從目前或特定文化特性擷取適當的當地語系化指示項。 AM 指示項用於從 0:00:00 (午夜) 到 11:59:59.999 為止的所有時間。 PM 指示項用於從 12:00:00 (中午) 到 23:59:59.999 為止的所有時間。
如果單獨使用 "t" 格式規範,而沒有其他自訂格式規範,則會將它解譯為 "t" 標準日期和時間格式規範。 如需使用單一格式規範的詳細資訊,請移至 本文稍後的使用單一自定義格式規範 。
下列範例會在自訂格式字串中加入 "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 (午夜) 到 11:59:59.999 為止的所有時間。 PM 指示項用於從 12:00:00 (中午) 到 23:59:59.999 為止的所有時間。
對於需要特別強調 AM 與 PM 的語言,請務必使用 "tt" 規範。 其中一種就是日文,日文的 AM 和 PM 指示項的第二個字元 (非第一個字元) 不同。
下列範例會在自訂格式字串中加入 "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" 自訂格式規範以一位或兩位數來表示年份。 如果年份超過兩個位數,結果中只會出現兩個低位數字。 如果兩位數年份的第一個數字以零開始 (例如 2008),則會格式化為沒有前置零的數字。
如果單獨使用 "y" 格式規範,而沒有其他自訂格式規範,則會將它解譯為 "y" 標準日期和時間格式規範。 如需使用單一格式規範的詳細資訊,請移至 本文稍後的使用單一自定義格式規範 。
下列範例會在自訂格式字串中加入 "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" 自訂格式規範以兩位數來表示年份。 如果年份超過兩個位數,結果中只會出現兩個低位數字。 如果兩位數年份少於兩個有效位數,則會以前置零填補此數字來產生兩位數。
在剖析作業中,使用 「yy」 自訂格式規範剖析的兩位數年份會根據格式提供者的目前行事歷來解譯。 下列範例會使用 en-US 文化特性的預設西曆 (在此案例中為目前的文化特性),剖析具有兩位數年份之日期的字串表示。 四位數日期所傳回的值取決於操作系統所設定的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" 自訂格式規範以最少三位數來表示年份。 如果年份超過三個有效位數,它們會包含在結果字串中。 如果年份少於三個位數,則會以前置零填補此數字來產生三位數。
注意
對於可具有五位數年份的泰國佛教曆法,此格式規範會顯示全部有效位數。
下列範例會在自訂格式字串中加入 "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" 自訂格式規範以最少四位數來表示年份。 如果年份超過四個有效位數,它們會包含在結果字串中。 如果年份少於四個位數,則會以前置零填補此數字,以產生四個位數。
注意
對於可具有五位數年份的泰國佛教曆法,此格式規範會顯示最少四個位數。
下列範例會在自訂格式字串中加入 "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" 規範) 以最少五位數來表示年份。 如果年份超過五個有效位數,它們會包含在結果字串中。 如果年份少於五位數,則會以前置零填補此數字來產生五位數。
如果有更多 "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 的時數。 單一位數位移的格式 沒有 前置零。
下表顯示位移值如何根據 DateTimeZone 函 式而變更。
DateTimeZone 值 | 位移值 |
---|---|
DateTimeZone.LocalNow | 在 Power Query Desktop 上,本機操作系統時區與 UTC 的已簽署位移。 在 Power Query Online 上,傳 +00 回 。 |
DateTimeZone.UtcNow | 傳回 +0 。 |
如果在不使用其他自定義格式規範的情況下使用 「z」 格式規範,則會將其解譯為標準日期和時間格式規範,並擲回表達式錯誤。 如需使用單一格式規範的詳細資訊,請移至 本文稍後的使用單一自定義格式規範 。
下列範例會在美國太平洋時區系統的自定義格式字串中包含 「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
注意
DateTimeZone.LocalNow 傳回的值取決於您是在本機電腦或在線執行Power Query。 例如,在美國太平洋時區系統上的上述範例中,Power Query Desktop 會傳 {0:-7}
回 ,因為它正在讀取本機計算機上設定的時間。 不過,Power Query Online 會傳 {0:+0}
回 ,因為它正在讀取雲端虛擬機上設定的時間,這些時間設定為 UTC。
"zz" 自訂格式規範
使用 DateTimeZone 值時,“zz” 自定義格式規範代表指定時區的帶正負號位移,以小時為單位。 顯示時差時,一定會有前置正負號。 加號 (+) 表示早於 UTC 的時數,減號 (-) 表示晚於 UTC 的時數。 單一位數位移的格式為前置零。
下表顯示位移值如何根據 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
注意
DateTimeZone.LocalNow 傳回的值取決於您是在本機電腦或在線執行Power Query。 例如,在美國太平洋時區系統上的上述範例中,Power Query Desktop 會傳 {0:-07}
回 ,因為它正在讀取本機計算機上設定的時間。 不過,Power Query Online 會傳 {0:+00}
回 ,因為它正在讀取雲端虛擬機上設定的時間,這些時間設定為 UTC。
"zzz" 自訂格式規範
使用 DateTimeZone 值時,“zzz” 自定義格式規範代表指定時區的帶正負號位移,以小時和分鐘為單位。 顯示時差時,一定會有前置正負號。 加號 (+) 表示早於 UTC 的時數,減號 (-) 表示晚於 UTC 的時數。 單一位數的時差會格式化為有前置零的數字。
下表顯示位移值如何根據 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
注意
DateTimeZone.LocalNow 傳回的值取決於您是在本機電腦或在線執行Power Query。 例如,在美國太平洋時區系統上的上述範例中,Power Query Desktop 會傳 {0:-07:00}
回 ,因為它正在讀取本機計算機上設定的時間。 不過,Power Query Online 會傳 {0:+00:00}
回 ,因為它正在讀取雲端虛擬機上設定的時間,這些時間設定為 UTC。
日期和時間分隔符規範
":" 自訂格式規範
":" 自訂格式規範表示時間分隔符號,用於區別時、分、秒。 從目前或指定的文化特性擷取適當的當地語系化時間分隔符。
注意
若要變更特定日期和時間字串的時間分隔符號,請在常值字串分隔符號內指定分隔字元。 例如,自訂格式字串 hh_dd_ss
產生的結果字串中,一律使用 "_" (底線) 作為時間分隔符號。
如果在不使用其他自定義格式規範的情況下使用 “:” 格式規範,則會將其解譯為標準日期和時間格式規範,並擲回表達式錯誤。 如需使用單一格式規範的詳細資訊,請移至 本文稍後的使用單一自定義格式規範 。
"/" 自訂格式規範
"/" 自訂格式規範表示日期分隔符號,用於區別年、月、日。 從目前或指定的文化特性擷取適當的當地語系化日期分隔符。
注意
若要變更特定日期和時間字串的日期分隔符號,請在常值字串分隔符號內指定分隔字元。 例如,自訂格式字串 mm/dd/yyyy
產生的結果字串中,一律使用 "/" 作為日期分隔符號。
如果使用 「/」 格式規範而不使用其他自定義格式規範,則會將其解譯為標準日期和時間格式規範,並擲回表達式錯誤。 如需使用單一格式規範的詳細資訊,請移至 本文稍後的使用單一自定義格式規範 。
字元常值
自定義日期和時間格式字串中的下列字元是保留的,而且一律會解譯為格式化字元,或在 、"
、 '
和 /
的情況下\
,解譯為特殊字元。
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
您可以使用兩種方式來指定將字元解譯為常值字元,而不是保留字元,以便包含在結果字串中,或在輸入字串中成功剖析:
將每個保留字元逸出。 如需詳細資訊,請移至使用 逸出序列。
下列範例包含常值字元 "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
備註
使用單一自訂格式規範
自訂日期和時間格式字串是由兩個或多個字元所組成。 日期和時間格式化方法會將任何單一字元字串解譯為標準日期和時間格式字串。 如果他們無法將字元辨識為有效的格式規範,則會擲回表達式錯誤。 例如,僅由規範 "h" 所組成的格式字串會解譯為標準日期和時間字串。 不過,在這種特殊情形下會擲回例外狀況,因為並沒有 "h" 標準日期和時間格式規範。
若要使用任何自訂日期和時間格式規範做為格式字串中的唯一規範 (也就是單獨使用 "d"、"f"、"F"、"g"、"h"、"H"、"K"、"m"、"M"、"s"、"t"、"y"、"z"、":" 或 "/" 自訂格式規範),請在規範之前或之後加上一個空格,或在單一自訂日期和時間規範之前加上一個百分比 ("%") 格式規範。
例如,"%h
" 會解譯為自訂日期和時間格式字串,該字串會顯示由目前日期和時間值所表示的小時。 您也可以使用 " h" 或 "h " 格式字串,然而這會在結果字串中的小時旁邊加上空格。 下列範例示範這三個格式字串。
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"、":" 或 "/" 字元會解譯為自訂格式規範,而不是常值字元。
若要防止字元解譯為格式規範,您可以:
- 在前面加上反斜杠。
- 以單引弧括住它。
- 以兩個雙引弧括住它。
每個字元都會做為逸出序列。 逸出序列表示下列字元或環繞字元是應該包含在結果字串中未變更的文字常值。
若要在結果字串中包含雙引號,您必須以另一個雙引號 (""
) 逸出它。
下列範例會使用不同的逸出序列,以防止格式化作業將 「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