Конвертировать DateTime в дату UTC - PullRequest
0 голосов
/ 13 марта 2019

Согласно моему требованию клиента, мне нужно отправить текущее время даты в формате UTC (ниже формат).

FORMAT: YYYY-MM-DDTHH:MM:SS.MsMsMsZ     'Ms is milliseconds
EXAMPLE: 2014-02-28T15:59:23.000Z       'Z is Time Zone Designator(TZD) and it must be Z

Когда я пытаюсь конвертировать дату и время в VB.Net, я получаю следующий формат, которыйне соответствует вышеуказанному формату.Миллисекунды должны быть только 3 цифрами и должны показывать Z в конце.

Вот мой код.

DateTime.Now.ToString("o"))
2019-03-13T16:47:55.9620000-06:00

Ответы [ 2 ]

1 голос
/ 14 марта 2019

Вы должны указать «вид» даты и времени, которые вы используете. Например. следующий код:

Dim dt As New DateTime(2019, 1, 1, 3, 4, 23, DateTimeKind.Utc)
Console.WriteLine(dt.ToString("o"))

произведет: 2019-01-01T03: 04: 23.0000000Z

См .: Стандартные строки формата даты и времени с особым вниманием к стандартной строке "O" "o" и спецификатору формата The Round-trip ("O", "o").

1 голос
/ 14 марта 2019

Вы можете преобразовать текущее местное время в UTC (Зулу) с помощью DateTime.UtcNow .После этого вы можете получить пользовательский формат даты и времени из него с кодом, подобным следующему:

Dim currentTimeUTC As DateTime = DateTime.UtcNow
Dim strCurrentTimeUTC As String = currentTimeUTC.ToString("yyyy-MM-ddTHH:mm:ss.fffZ")
Debug.Print(strCurrentTimeUTC)

Вывод в моей системе отображался как:

2019-03-13T20:55:28.493Z
...