C#/。NET日期:从本地到UTC

时间:2011-04-25 18:27:48

标签: c# .net datetime

我从用户那里获得日期数据。该数据是一个日期(例如4/23/2011)和一小时(0-23),代表时间。用户选择的日期/时间是当地时间。

我需要将其转换为UTC DateTime。我有他们的GMTOffset的位置。我怎么能这样做?

3 个答案:

答案 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,那会做你想要的吗?