首页 > 解决方案 > 如何将日期转换为毫秒(UTC),反之亦然?

问题描述

我正在制作一个 C# windows 窗体应用程序。应用程序上有一个 DateTimePicker 工具,该工具的格式为 MM/dd/yyyy hh:mm:ss tt。例如,应用程序上的日期如下所示:07/28/2021 09:10:50 AM

我想根据 UTC 将该日期转换为毫秒,并将该毫秒发送到服务器。我也需要做相反的事情。当我从服务器 (UTC) 收到毫秒数时,我需要将其转换为 DateTimePicker 的格式 (MM/dd/yyyy hh:mm:ss tt)。当我从服务器接收毫秒时,我不需要将日期转换为本地时间。一切都取决于UTC。我怎样才能做到这一点?

标签: c#datetimeutcmilliseconds

解决方案


使用 ParseExact 解析特定格式 https://docs.microsoft.com/en-us/dotnet/api/system.datetime.parseexact?redirectedfrom=MSDN&view=net-5.0#overloads

请注意,根据用于接受日期时间的工具/版本,它可能假定为本地时间/UTC,因此您可能需要检查 DateTime.Kind 属性。 https://github.com/dotnet/aspnetcore/issues/11584

如果您在利用 DateTimeOffset 接受来自服务器的值时遇到问题,然后使用以下方法从那里提取原始 DateTime:

DateTimeOffset.DateTime

推荐阅读