【发布时间】:2016-01-12 02:48:01
【问题描述】:
我想要实现的是,通过使用 int 值,更改 UTC 日期时间并从不同时区接收时间。
int 值应该是:
0 = UTC+00:00
1 = UTC+01:00
...
按照逻辑,它应该是这样的:
int timezoneInt = 1;
var newDate = DateTime.UtcNow.AddMinutes(timezoneInt*60);
但问题是这不包括夏季/冬季时间。
例如:
我的位置是 UTC+02:00,时间是 09:20 AM。我需要获取 UTC+00:00(等于 DateTime.UtcNow 并且 应该是(?) 07:20 AM)。因为夏令时,现在.UtcNow 是早上 06:20,所以我不能只将 60 分钟乘以 int 值,我还需要以某种方式包含夏令时因素。
我应该如何做到这一点,或者我缺少什么或了解谁?
编辑: 被标记为重复。好吧,here 我没有看到任何可以通过使用 int 值作为时区来帮助改变时间的东西。
【问题讨论】:
-
使用
TimeZoneInfo。可以通过DateTime.UtcNow.AddHours(1)添加小时。像你一样加 60m 是没有意义的 -
马克,你没看第一题吧?
-
@OlegsJasjko 我严重误解了这个问题 - 但问题,即来自 kevinintjuh93 链接的答案似乎是你的答案
-
不,不是。我添加了评论原因。