2014-11-05 7 views
2

У меня есть DateTime переменную, которая содержит следующее значение: 5/11/2014 7:56:26 amТочный формат DateTime строки

В настоящее время я использую следующий код для форматирования это как строка: uDate.ToString("s"). Используя этот код, я получаю следующее значение: 2014-11-05T07:56:26

Мне нужно, чтобы это было точнее. Точное значение я хотел получить в следующих пределах точности: 2014-11-05T07:56:26.4

Я сделал некоторые исследования по следующей ссылке: http://www.w3.org/TR/NOTE-datetime

Вот что я нашел:

Это профиль не определяет, сколько цифр может использоваться для представления десятичной доли секунды. Принятый стандарт, который разрешает долей секунды, должен указывать как минимальное количество цифр (число больше или равно одному), так и максимальное количество цифр (максимальное значение может быть указано как «неограниченное»).

Значение Я хотел, чтобы получить это значение, используемое на Azure при отображении DateTime переменной в запросе веб-службы.

Как я могу отформатировать собственные строки DateTime так, чтобы они были того же формата, что и формат, используемый на Azure? Есть ли определенный формат, который использует Azure?

В принципе, как я могу отформатировать DateTime строку, чтобы быть более точным, чем код: uDate.ToString("s")

Спасибо заранее.

ответ

2

Я считаю, что самое «полная» информация будет использовать «O» значение, в том числе фракций, а также временную зону (при наличии).

var myDate = DateTime.Now.ToString("o"); 

См. Также this артикул. Microsoft заявляет, что «соответствует ISO 8601», и каждая платформа .Net (также Azure) может читать эту строку как DateTime, а также правильно устанавливать «DateTimeKind», когда она доступна.

+0

Но этот спецификатор имеет '..fffffff..' как часть miliseconds. Я не думаю, что OP хочет этого. –

+0

На самом деле, если вы хотите быть более точным, вы должны предоставить дополнительную информацию, включая временные доли и часовой пояс, которые также стандартизированы для веб-сервисов. – rodrigogq

+1

Спасибо. Точность намного точнее, чем формат «s» и работает как ожидалось. – user3736648

2

"s" standard format specifier использует SortableDateTimePattern property вашего CurrentCulture и не включает в себя часть miliseconds.

Этот спецификатор формата всегда одинаковый независимо от используемой вами культуры и является форматом "yyyy'-'MM'-'dd'T'HH':'mm':'ss".

Вы можете использовать только custom date and time format strings;

uDate.ToString("yyyy-MM-dd'T'HH:mm:ss.f"); 
Смежные вопросы