DateTime XAML 語法
某些控制項,例如 Calendar 和 DatePicker ,具有使用 型別 DateTime 的屬性。 雖然您通常會在執行階段時,於程式碼後置中指定這些控制項的初始日期或時間,但仍可在 XAML 中指定初始的日期或時間。 WPF XAML 剖析器會使用內建的 XAML 文字語法來處理值的剖 DateTime 析。 本主題描述 XAML 文字語法的詳細 DateTime 資料。
使用 DateTime XAML 語法的時機
在 XAML 中設定日期不是必要的,甚至可能不需要。 例如,您可以使用 DateTime.Now 屬性在執行時間初始化日期,也可以根據使用者輸入,在程式碼後置中針對行事曆執行所有日期調整。 不過,在某些情況下,您可能會想要將日期硬式編碼到 Calendar 和 DatePicker 控制項範本中。 DateTimeXAML 語法必須用於這些案例。
DateTime XAML 語法是原生的行為
DateTime 是 CLR 基類程式庫中定義的類別。 由於基類程式庫與 CLR 的其餘部分相關,因此無法套用 TypeConverterAttribute 至 類別,並使用類型轉換器來處理來自 XAML 的字串,並在執行時間物件模型中將它們轉換成 DateTime 。 沒有可提供轉換行為的 DateTimeConverter
,本主題中描述的轉換行為是 WPF XAML 剖析器的原生行為。
DateTime XAML 語法的格式字串
您可以使用格式 DateTime 字串來指定 的格式。 格式字串會正規化可用來建立值的文字語法。 DateTime 現有 WPF 控制項的值通常只會使用 的 DateTime 日期元件,而不是時間元件。
在 XAML 中指定 DateTime 時,您可以交換使用任何格式字串。
您也可以使用本主題中未特意顯示的格式和格式字串。 就技術上而言,WPF XAML 剖析器所指定之任何 DateTime 值的 XAML 會使用內部呼叫 DateTime.Parse ,因此您可以使用 接受的任何字串 DateTime.Parse 作為 XAML 輸入。 如需詳細資訊,請參閱DateTime.Parse。
重要
DateTime XAML 語法一律使用 en-us
做為其 CultureInfo 原生轉換的 。 這不會受到 Language XAML 中的值或 xml:lang
值影響,因為 XAML 屬性層級類型轉換在沒有該內容的情況下運作。 因為文化特性多變,例如日期和月份的顯示順序,請勿嘗試插入此處顯示的格式字串。 此處顯示的格式字串正是剖析 XAML 時使用的格式字串,無論其他文化特性設定為何。
下列各節說明一些常見的 DateTime 格式字串。
簡短日期模式 ("d")
以下顯示 XAML 中 的簡短日期格式 DateTime :
M/d/YYYY
這是依 WPF 控制項指定一般用法所有必要資訊的最簡單形式,不會受到意外時區位移與時間元件的影響;因此,建議優先選用此格式。
例如,若要指定日期 2010 年 6 月 1 日,請使用下列字串︰
3/1/2010
如需詳細資訊,請參閱DateTimeFormatInfo.ShortDatePattern。
可排序的 DateTime 模式 ("s")
下列顯示 XAML 中的可 DateTime 排序模式:
yyyy'-'MM'-'dd'T'HH':'mm':'ss
例如,若要指定日期 2010 年 6 月 1 日,請使用下列字串 (時間元件全都輸入 0)︰
2010-06-01T000:00:00
RFC1123 模式 ("r")
RFC1123 模式之所以有用,是因為它可能是來自有後列情況的其他日期產生器的字串輸入:也因為文化特性多變的原因而使用 RFC1123 模式。 下列顯示 XAML 中的RFC1123 DateTime 模式:
ddd, dd MMM yyyy HH':'mm':'ss 'UTC'
例如,若要指定日期 2010 年 6 月 1 日,請使用下列字串 (時間元件全都輸入 0)︰
Mon, 01 Jun 2010 00:00:00 UTC
其他格式與模式
如先前所述, DateTime XAML 中的 可以指定為可接受的任何字串,做為 的 DateTime.Parse 輸入。 這包括其他正規化格式(例如 UniversalSortableDateTimePattern ),以及未正規化為特定 DateTimeFormatInfo 表單的格式。 例如,表單 YYYY/mm/dd
可接受為 的 DateTime.Parse 輸入。 本主題不會嘗試說明所有可能作用的格式,而是建議使用簡短日期模式為標準做法。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應