我从用户那里获得日期数据。该数据是一个日期(例如4/23/2011)和一小时(0-23),代表时间。用户选择的日期/时间是当地时间。
我需要将其转换为UTC DateTime。我有他们的GMTOffset的位置。我怎么能这样做?
答案 0 :(得分:1)
您应该使用DateTimeOffset
structure,特别是constructor that takes the DateTime
and the TimeSpan
that represents the offset。
从那里转换到UTC或从UTC转换是轻而易举的,因为偏移嵌入在结构中而不依赖于本地系统设置。
注意,即使不常见,也是recommended to work with DateTimeOffset
most of the time, as opposed to DateTime
(参见标题为“DateTimeOffset Structure”的部分下的注释)。
答案 1 :(得分:0)
var utcDateTime =
new DateTimeOffset(userDateTime, TimeSpan.FromHours(userUtcOffset)).UtcDateTime;
当然,如果GMT偏移量有几分钟/分钟,您可以使用TimeSpan
。
答案 2 :(得分:-1)
只需在C#中使用DateTime.ToUniversalTime,那会做你想要的吗?