CultureInfo::DateTimeFormat Property
Gets or sets a DateTimeFormatInfo that defines the culturally appropriate format of displaying dates and times.
Assembly: mscorlib (in mscorlib.dll)
public: virtual property DateTimeFormatInfo^ DateTimeFormat { DateTimeFormatInfo^ get (); void set (DateTimeFormatInfo^ value); }
Property Value
Type: System.Globalization::DateTimeFormatInfoA DateTimeFormatInfo that defines the culturally appropriate format of displaying dates and times.
| Exception | Condition |
|---|---|
| ArgumentNullException | The property is set to null. |
| InvalidOperationException | The DateTimeFormat property or any of the DateTimeFormatInfo properties is set, and the CultureInfo is read-only. |
Overrides
The user might choose to override some of the values associated with the current culture of Windows through the regional and language options portion of Control Panel. For example, the user might choose to display the date in a different format or to use a currency other than the default for the culture.
If UseUserOverride is true and the specified culture matches the current culture of Windows, the CultureInfo uses those overrides, including user settings for the properties of the DateTimeFormatInfo instance returned by the DateTimeFormat property, and the properties of the NumberFormatInfo instance returned by the NumberFormat property. If the user settings are incompatible with the culture associated with the CultureInfo, for example, if the selected calendar is not one of the OptionalCalendars, the results of the methods and the values of the properties are undefined.
The value of the DateTimeFormat property and the NumberFormat property is not calculated until your application accesses the property. If the user can change the current culture to a new culture while the application is running and then the application accesses the DateTimeFormat or NumberFormat property, the application retrieves the defaults for the new culture instead of the overrides for the original culture. To preserve the overrides for the original current culture, the application should access the DateTimeFormat and NumberFormat properties before changing the current culture.
If DateTimeFormatInfo::Calendar is the TaiwanCalendar but the Thread::CurrentCulture is not set to Chinese (Taiwan), named zh-TW, then DateTimeFormatInfo::NativeCalendarName, DateTimeFormatInfo::GetEraName, and DateTimeFormatInfo::GetAbbreviatedEraName return an empty string ("").
The following code example shows that CultureInfo.Clone also clones the DateTimeFormatInfo and NumberFormatInfo instances associated with the CultureInfo.
using namespace System; using namespace System::Globalization; int main() { // Creates and initializes a CultureInfo. CultureInfo^ myCI = gcnew CultureInfo( "en-US",false ); // Clones myCI and modifies the DTFI and NFI instances associated with the clone. CultureInfo^ myCIclone = dynamic_cast<CultureInfo^>(myCI->Clone()); myCIclone->DateTimeFormat->AMDesignator = "a.m."; myCIclone->DateTimeFormat->DateSeparator = "-"; myCIclone->NumberFormat->CurrencySymbol = "USD"; myCIclone->NumberFormat->NumberDecimalDigits = 4; // Displays the properties of the DTFI and NFI instances associated with the original and with the clone. Console::WriteLine( "DTFI/NFI PROPERTY\tORIGINAL\tMODIFIED CLONE" ); Console::WriteLine( "DTFI.AMDesignator\t{0}\t\t{1}", myCI->DateTimeFormat->AMDesignator, myCIclone->DateTimeFormat->AMDesignator ); Console::WriteLine( "DTFI.DateSeparator\t{0}\t\t{1}", myCI->DateTimeFormat->DateSeparator, myCIclone->DateTimeFormat->DateSeparator ); Console::WriteLine( "NFI.CurrencySymbol\t{0}\t\t{1}", myCI->NumberFormat->CurrencySymbol, myCIclone->NumberFormat->CurrencySymbol ); Console::WriteLine( "NFI.NumberDecimalDigits\t{0}\t\t{1}", myCI->NumberFormat->NumberDecimalDigits, myCIclone->NumberFormat->NumberDecimalDigits ); } /* This code produces the following output. DTFI/NFI PROPERTY ORIGINAL MODIFIED CLONE DTFI.AMDesignator AM a.m. DTFI.DateSeparator / - NFI.CurrencySymbol $ USD NFI.NumberDecimalDigits 2 4 */
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.