gpt4 book ai didi

javascript - 获取两个不同时区的日期时间

转载 作者:太空宇宙 更新时间:2023-11-04 15:27:54 24 4
gpt4 key购买 nike

我将日期时间存储在文档数据库中

"myDate": "2017-06-27T15:44:35.6752016+09:30",

我在 C# 中存储该日期时间的属性如下

public DateTime MYDate{ get; set; }

在我的屏幕上,用户可以单击一个按钮,将信息保存在文本文件中。现在,我想要存储在该文本文件中的信息是作为字符串的 MyDate 值,以及作为字符串的 MyDate 的另一个版本。 MyDate 的另一个版本可以具有不同的时区。例如,我在澳大利亚创建 MyDate,现在假设我搬到了美国,当我在客户端上单击该按钮时,我正在传递 DateTimeOffset 信息,并希望查看原始日期和美国时间等效时间的另一个版本。我该如何解决这个问题?

在.net中,我知道我们可以使用TimeZoneInfo.FindSystemTimeZoneById("id"),但是我如何从javascript客户端传递该id信息?

最佳答案

我认为我已经找到了最好的解决方案,该解决方案适用于任何时区使用我的应用程序的任何客户。为了实现这一目标,我使用两个库

1) moment timezone - 获取客户端时区(iana 格式)2) TimeZoneConverter - 由 Matt(日期时间专家)编写的 c# nuget 包。这是将 iana 时区转换为窗口支持的时区所必需的

使用

从客户端,我们可以使用如下所示的时刻时区传递 iana 基本时区

const keyName = moment.tz.guess();

然后在 C# 方面我们要做的就是

var clientTimeZone = TZConvert.IanaToWindows(keyName);

var windowsStandardTime = TimeZoneInfo.GetSystemTimeZones().First(x => x.Id == clientTimeZone);

var clientTime = DateTime.SpecifyKind(
TimeZoneInfo.ConvertTime(dateTimeValue, windowsStandardTime),
DateTimeKind.Utc);

希望对其他人有帮助

关于javascript - 获取两个不同时区的日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45077703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com