C# 将日期时间转换为UTC并返回
也许听起来有点奇怪,但我确实知道这个问题的解决方案。我最初的解决方案不起作用,我想知道为什么。它是一个Asp.NETMVC应用程序 这不起作用:C# 将日期时间转换为UTC并返回,c#,asp.net-mvc,C#,Asp.net Mvc,也许听起来有点奇怪,但我确实知道这个问题的解决方案。我最初的解决方案不起作用,我想知道为什么。它是一个Asp.NETMVC应用程序 这不起作用: public static DateTime ConvertToUTC(String userTimeZone, DateTime date) { var result = TimeZoneInfo.ConvertTimeToUtc(date, TimeZoneInfo.FindSystemTimeZoneByI
public static DateTime ConvertToUTC(String userTimeZone, DateTime date)
{
var result = TimeZoneInfo.ConvertTimeToUtc(date, TimeZoneInfo.FindSystemTimeZoneById(userTimeZone));
return result;
}
public static DateTime ConvertToUserTime(string userTimeZone, DateTime date)
{
var result = TimeZoneInfo.ConvertTimeFromUtc(date, TimeZoneInfo.FindSystemTimeZoneById(userTimeZone));
return result;
}
我无法将时间转换回原来的时间
这确实奏效了:
public DateTime ConvertToUTC(String userTimeZone, DateTime date)
{
var result = TimeZoneInfo.ConvertTimeToUtc(result, TimeZoneInfo.FindSystemTimeZoneById(userTimeZone));
return result;
}
public DateTime ConvertToUserTime(string userTimeZone, DateTime date)
{
var userTimezoneInfo = TimeZoneInfo.FindSystemTimeZoneById(userTimeZone);
var result = date.Add(userTimezoneInfo.BaseUtcOffset);
return result;
}
有人有想法吗?对于这个问题,.NET 3.5中引入了一种特殊的数据类型:它在功能上类似于,但也存储UTC偏移量。如果不知道所涉及的时区、输入、预期输出或失败时的实际输出,很难知道发生了什么问题。我建议用我的野田佳彦时间计划来代替,请注意:)