DateTime XAML 語法

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

使用 DateTime XAML 語法的時機

在 XAML 中設定日期不是必要的,甚至可能不需要。 例如,您可以使用 DateTime.Now 屬性在執行時間初始化日期,也可以根據使用者輸入,在程式碼後置中針對行事曆執行所有日期調整。 不過,在某些情況下,您可能會想要將日期硬式編碼到 CalendarDatePicker 控制項範本中。 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 輸入。 本主題不會嘗試說明所有可能作用的格式,而是建議使用簡短日期模式為標準做法。

另請參閱