如何根据 C# 中的时区偏移获取日期时间?
How to get datetime based on timezone offset in c#?
在 C# 中,我这样做
DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss")
但它让我得到了服务器时间。但是我也有这种格式的偏移量,例如 "-04:00"
。如何结合偏移量得到当地时间?
谢谢
这应该有效
DateTime.UtcNow.AddHours(DateTimeOffset.Parse("01/01/0001 00:00:00 -04:00").Offset.TotalHours).ToString("yyyy-dd-M--HH-mm-ss",CultureInfo. InvariantCulture);
需要添加指令
using System.Globalization;
这有效。
DateTime.UtcNow.AddHours(DateTimeOffset.Parse("01/01/0001 00:00:00 -04:00").Offset.TotalHours).ToString("yyyy-dd-M--HH-mm-ss")
如果你的意思是你想得到服务器的系统本地时间包括偏移量,那么使用DateTimeOffset.Now
属性。然后根据需要格式化。
DateTimeOffset.Now.ToString("yyyy-MM-dd HH:mm:ss zzz")
The zzz
specifier 将偏移量生成为您要求的 ISO 8601 扩展格式的字符串。
如果你的意思是你有一个来自其他地方的 UTC 偏移量,并且你想将它应用到服务器的当前 UTC 时间,那么请改为执行以下操作:
TimeSpan offset = TimeSpan.Parse("-04:00");
DateTimeOffset now = DateTimeOffset.UtcNow.ToOffset(offset);
string result = now.ToString("yyyy-MM-dd HH:mm:ss zzz");
这需要当前服务器时间,并应用 ToOffset
函数来调整您提供的偏移量。
请记住,偏移量与时区不同。您的偏移量 可能 是当前日期和时间的偏移量,或者它可能是该时区中的其他日期和时间的偏移量。例如,美国东部时间在夏令时期间为 UTC-4,但在标准时间期间为 UTC-5。请参阅 the timezone tag wiki 中的“时区 != 偏移量”。
在 C# 中,我这样做
DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss")
但它让我得到了服务器时间。但是我也有这种格式的偏移量,例如 "-04:00"
。如何结合偏移量得到当地时间?
谢谢
这应该有效
DateTime.UtcNow.AddHours(DateTimeOffset.Parse("01/01/0001 00:00:00 -04:00").Offset.TotalHours).ToString("yyyy-dd-M--HH-mm-ss",CultureInfo. InvariantCulture);
需要添加指令
using System.Globalization;
这有效。
DateTime.UtcNow.AddHours(DateTimeOffset.Parse("01/01/0001 00:00:00 -04:00").Offset.TotalHours).ToString("yyyy-dd-M--HH-mm-ss")
如果你的意思是你想得到服务器的系统本地时间包括偏移量,那么使用DateTimeOffset.Now
属性。然后根据需要格式化。
DateTimeOffset.Now.ToString("yyyy-MM-dd HH:mm:ss zzz")
The zzz
specifier 将偏移量生成为您要求的 ISO 8601 扩展格式的字符串。
如果你的意思是你有一个来自其他地方的 UTC 偏移量,并且你想将它应用到服务器的当前 UTC 时间,那么请改为执行以下操作:
TimeSpan offset = TimeSpan.Parse("-04:00");
DateTimeOffset now = DateTimeOffset.UtcNow.ToOffset(offset);
string result = now.ToString("yyyy-MM-dd HH:mm:ss zzz");
这需要当前服务器时间,并应用 ToOffset
函数来调整您提供的偏移量。
请记住,偏移量与时区不同。您的偏移量 可能 是当前日期和时间的偏移量,或者它可能是该时区中的其他日期和时间的偏移量。例如,美国东部时间在夏令时期间为 UTC-4,但在标准时间期间为 UTC-5。请参阅 the timezone tag wiki 中的“时区 != 偏移量”。