gpt4 book ai didi

c# - 如何在C#中表示不同时区的日期时间

转载 作者:行者123 更新时间:2023-11-30 15:10:39 24 4
gpt4 key购买 nike

我有一个 .NET WebService(用 C# 编写),它应该为世界各地的人们服务。
对于每个请求,我都会在他自己的时区中获取用户的日期时间,格式为:yyyy/MM/dd HH:mm ZZZZ
我必须将字符串转换为代表原始 日期和时间的内容,并指定格林威治标准时间的时区。我必须进行一些逻辑计算并将其保存在数据库中。

常规的 DateTime 不支持这个。它没有指定时区的属性。当我尝试将我的字符串转换为 DateTime - 它只是将它转换为我的本地时间。

希望将我的时间保持在 UTC 时间,因为我有一些逻辑必须按每个用户自己的时间运行。

有人知道处理此问题的 C# 类吗?

最佳答案

您可以使用 DateTimeOffset 解析它。例如:

using System;

class Program {
static void Main(string[] args) {
var s = "2009/01/10 17:18:44 -0800";
var dto = DateTimeOffset.ParseExact(s, "yyyy/MM/dd HH:mm:ss zzzz", null);
var utc = dto.UtcDateTime;
Console.WriteLine(utc);
Console.ReadLine();
}
}

输出:1/11/2009 1:18:44 AM

关于c# - 如何在C#中表示不同时区的日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3060042/

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