Значения DateTime и их строковые представления




На внутреннем уровне все значения DateTime представлены как количество интервалов (1 интервалов = 100 нс), которое прошло с 00:00:00 1 января 0001 года. Фактическое значение DateTime не зависит от способа отображения значения, когда оно отображается в элементе пользовательского интерфейса или записывается в файл. Внешний вид значения DateTime — это результат операции форматирования. Форматирование — это процесс преобразования значения в его строковое представление.

Так как внешний вид значений даты и времени зависит от таких факторов, как язык и региональные параметры, международные стандарты, программные требования и личные предпочтения, структура DateTime обеспечивает большую гибкость при форматировании значений даты и времени с помощью перегруженных версий метода ToString. Метод DateTime..::.ToString()()() по умолчанию возвращает строковое представление значений даты и времени, используя формат краткой записи даты и длинной записи времени, предусмотренный в языке и региональных параметрах. В следующем примере используется метод DateTime..::.ToString()()() по умолчанию, чтобы отобразить дату и время, используя краткий формат даты и длинный формат времени для языка и региональных параметров en-US, которые являются текущими региональными параметрами на компьютере, где выполняется пример.

DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0);

Console.WriteLine(date1.ToString());

// For en-US culture, displays 3/1/2008 7:00:00 AM

Метод DateTime..::.ToString(IFormatProvider) возвращает строковое представление значения даты и времени, используя краткий формат даты и длинный формат времени определенного языка и региональных параметров.

В примере используется метод DateTime..::.ToString(IFormatProvider), чтобы отобразить дату и время, используя краткий формат даты и длинный формат времени для языка и региональных параметров fr-FR.

DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0);

Console.WriteLine(date1.ToString(CultureInfo.CreateSpecificCulture("fr-FR")));

// Displays 01/03/2008 07:00:00

Метод DateTime..::.ToString(String) возвращает строковое представление даты и времени в формате, который определяется стандартным или настраиваемым описателем формата; при этом используются правила форматирования, которые зависят от текущих региональных параметров и языка.

В примере используется метод DateTime..::.ToString(String), чтобы отобразить полный формат даты и времени для языка и региональных параметров en-US, которые являются текущими региональными параметрами на компьютере, где выполняется пример.

DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0);

Console.WriteLine(date1.ToString("F"));

// Displays Saturday, March 01, 2008 7:00:00 AM

Метод DateTime..::.ToString(String, IFormatProvider) возвращает строковое представление даты и времени в формате, который определяется определенным описателем формата; при этом используются правила форматирования, которые зависят от заданных региональных параметров и языка.

В примере используется метод DateTime..::.ToString(String, IFormatProvider), чтобы отобразить дату и время в полном формате для языка и региональных параметров fr-FR.

DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0);

Console.WriteLine(date1.ToString("F", new CultureInfo("fr-FR")));

// Displays samedi 1 mars 2008 07:00:00

Начиная с версии 2.0 платформы.NET Framework структура DateTime содержит 64-битовое поле, состоящее из закрытого поля Kind, сцепленного с полем Ticks. Поле Kind является 2-битовым полем, указывающим, какое время представляет структура DateTime: местное, скоординированное всеобщее (UTC) или время в незаданном часовом поясе. Поле Kind используется при выполнении преобразования значения времени между часовыми поясами, но не для сравнения значений времени или выполнения над ними арифметических операций. Значение поля Kind можно получить из свойства Kind.

В следующем примере кода метод SpecifyKind используется для демонстрации влияния свойства Kind на методы преобразования ToLocalTime и ToUniversalTime.

// This code example demonstrates the DateTime Kind, Now, and

// UtcNow properties, and the SpecifyKind(), ToLocalTime(),

// and ToUniversalTime() methods.

 

using System;

class Sample

{

public static void Main()

{

// Get the date and time for the current moment, adjusted

// to the local time zone.

DateTime saveNow = DateTime.Now;

// Get the date and time for the current moment expressed

// as coordinated universal time (UTC).

DateTime saveUtcNow = DateTime.UtcNow;

DateTime myDt;

// Display the value and Kind property of the current moment

// expressed as UTC and local time.

DisplayNow("UtcNow:..........", saveUtcNow);

DisplayNow("Now:.............", saveNow);

Console.WriteLine();

// Change the Kind property of the current moment to

// DateTimeKind.Utc and display the result.

myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Utc);

Display("Utc:.............", myDt);

// Change the Kind property of the current moment to

// DateTimeKind.Local and display the result.

myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Local);

Display("Local:...........", myDt);

// Change the Kind property of the current moment to

// DateTimeKind.Unspecified and display the result.

myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Unspecified);

Display("Unspecified:.....", myDt);

}

// Display the value and Kind property of a DateTime structure, the

// DateTime structure converted to local time, and the DateTime

// structure converted to universal time.

public static string datePatt = @"M/d/yyyy hh:mm:ss tt";

public static void Display(string title, DateTime inputDt)

{

DateTime dispDt = inputDt;

string dtString;

 

// Display the original DateTime.

dtString = dispDt.ToString(datePatt);

Console.WriteLine("{0} {1}, Kind = {2}",

title, dtString, dispDt.Kind);

// Convert inputDt to local time and display the result.

// If inputDt.Kind is DateTimeKind.Utc, the conversion is performed.

// If inputDt.Kind is DateTimeKind.Local, the conversion is not performed.

// If inputDt.Kind is DateTimeKind.Unspecified, the conversion is

// performed as if inputDt was universal time.

dispDt = inputDt.ToLocalTime();

dtString = dispDt.ToString(datePatt);

Console.WriteLine(" ToLocalTime: {0}, Kind = {1}",

dtString, dispDt.Kind);

// Convert inputDt to universal time and display the result.

// If inputDt.Kind is DateTimeKind.Utc, the conversion is not performed.

// If inputDt.Kind is DateTimeKind.Local, the conversion is performed.

// If inputDt.Kind is DateTimeKind.Unspecified, the conversion is

// performed as if inputDt was local time.

dispDt = inputDt.ToUniversalTime();

dtString = dispDt.ToString(datePatt);

Console.WriteLine(" ToUniversalTime: {0}, Kind = {1}",

dtString, dispDt.Kind);

Console.WriteLine();

}

// Display the value and Kind property for DateTime.Now and DateTime.UtcNow.

public static void DisplayNow(string title, DateTime inputDt)

{

string dtString = inputDt.ToString(datePatt);

Console.WriteLine("{0} {1}, Kind = {2}",

title, dtString, inputDt.Kind);

}

}

/*

This code example produces the following results:

 

UtcNow:.......... 5/6/2005 09:34:42 PM, Kind = Utc

Now:............. 5/6/2005 02:34:42 PM, Kind = Local

Utc:............. 5/6/2005 02:34:42 PM, Kind = Utc

ToLocalTime: 5/6/2005 07:34:42 AM, Kind = Local

ToUniversalTime: 5/6/2005 02:34:42 PM, Kind = Utc

 

Local:........... 5/6/2005 02:34:42 PM, Kind = Local

ToLocalTime: 5/6/2005 02:34:42 PM, Kind = Local

ToUniversalTime: 5/6/2005 09:34:42 PM, Kind = Utc

Unspecified:..... 5/6/2005 02:34:42 PM, Kind = Unspecified

ToLocalTime: 5/6/2005 07:34:42 AM, Kind = Local

ToUniversalTime: 5/6/2005 09:34:42 PM, Kind = Utc

*/

 

Тип DateTime используется для хранения времени с выделением даты (Date) и времени суток (Time).

Для вывода объекта в удобном формате используется набор полей для хранения свойств. Внешнее представление формируется из внутреннего и форматируется по стандартам представления даты и времени.

Свойства

Для объекта определены свойства:

Свойство Описание
Date Дата
Day День месяца
DayOfWeek День недели
DayOfYear День года
Hour Час суток
Kind Поле хранения стандарта времени
Minute Минуты
Month Месяц
Now Местное время
Second Секунды
Tics Число тактов даты
TimeOfDay Время дня
Today Текущая дата
UTCNow Текущее время в общем стандарте
Year Год
MaxValue Максимальное время, только для чтения
MaxValue Минимальное время, только для чтения

Методы

Для объекта определены методы. Основыне из них:

Метод Описание
Add(TimeSpan) Добавить интервал TimeSpan
AddDays(double) Добавить дни
AddHours(double) Добавить часы
AddMilliseconds(double) Добавить миллисекунды
AddMinutes(double) Добавить минуты
AddMounths(int) Добавить месяцы
AddSecondes(double) Добавить секунды
AddTics(long) Число тактов даты
AddYears(int) Добавить годы
Compare(DateTime, DateTime) Сравнить время
Compare(DateTime) Сравнить текущее с аргуменнтом
DateTime(y,m,d,h,mn,s,ms) Задать (г,мес,день,час,мин,сек,мсек)
DateTime.GetDateTimeFormats() Преобразовать в формат
Subtract(TimeSpan) Вычесть интервал TimeSpan
Subtract(DateTime) Вычесть аргумент
ToString() Преобразует в строку
ToString(формат) Преобразует в строку в формате

 


 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-26 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: