将DateTime转换为UTC日期时间

时间:2019-03-13 20:31:35

标签: .net vb.net datetime-format

根据我的客户要求,我需要以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 个答案:

答案 0 :(得分:1)

您可以使用DateTime.UtcNow将当前的本地时间转换为UTC(Zulu)。之后,您可以使用以下代码从中获取Custom Date and Time Format

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

答案 1 :(得分:1)

您必须指定使用的日期时间的“种类”。 例如。以下代码:

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

将产生:2019-01-01T03:04:23.0000000Z

请参阅:Standard Date and Time Format Strings,特别注意标准字符串“ O”和“ o”和The Round-trip ("O", "o")格式说明符。