共用方式為


DateTime XAML 語法

某些控件,例如 CalendarDatePicker,具有使用 DateTime 類型的屬性。 雖然您通常會在執行階段時,於程式碼後置中指定這些控制項的初始日期或時間,但仍可在 XAML 中指定初始的日期或時間。 WPF XAML 剖析器使用內建的 XAML 文字語法處理 DateTime 值的剖析。 本主題說明 DateTime XAML 文字語法的特性。

使用 DateTime XAML 語法的時機

在 XAML 中設定日期不是必要的,甚至可能不需要。 例如,您可以使用 DateTime.Now 屬性在執行階段初始化日期,或者可以在程式碼後置中,根據使用者輸入調整行事曆的所有日期。 不過,在某些情況下,您可能會想要將日期硬式編碼成控件範本中的 CalendarDatePicker。 這些情況必須使用 DateTime XAML 語法。

DateTime XAML 語法是原生的行為

DateTime 是在 CLR 的基底類別程式庫中定義的類別。 因為基底類別程式庫與其餘 CLR 的關聯方式,不可能將 TypeConverterAttribute 套用至類別,並使用類型轉換器處理來自 XAML 的字串,在執行階段物件模型中將它們轉換成 DateTime。 沒有可提供轉換行為的 DateTimeConverter,本主題中描述的轉換行為是 WPF XAML 剖析器的原生行為。

DateTime XAML 語法的格式字串

您可使用格式字串指定 DateTime 的格式。 格式字串會正規化可用來建立值的文字語法。 現有 WPF 控制項的 DateTime 值通常只使用 DateTime 的日期元件,不使用時間元件。

在 XAML 中指定 DateTime 時,您可以交互使用任何格式字串。

您也可以使用本主題中未特意顯示的格式和格式字串。 技術上來說,針對任何指定的 DateTime 值,然後由 WPF XAML 剖析器剖析的 XAML 會使用內部呼叫來 DateTime.Parse,因此您可以使用 DateTime.Parse 接受的任何字串作為 XAML 輸入。 如需詳細資訊,請參閱DateTime.Parse

重要

DateTime XAML 語法的原生轉換一律使用 en-us 作為 CultureInfo。 這不受 XAML 的 Language 值或 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

其他格式與模式

如先前所述,XAML 中的 DateTime 可以指定為可接受的任何字串,作為 DateTime.Parse 的輸入。 這包括其他正規化格式(例如 UniversalSortableDateTimePattern),以及未正規化為特定 DateTimeFormatInfo 表單的格式。 例如, YYYY/mm/dd 表單可接受為 DateTime.Parse 的輸入。 本主題不會嘗試說明所有可能作用的格式,而是建議使用簡短日期模式為標準做法。

另請參閱