我试图创建一个将时间从一个时区转换为另一个时区的小方法。我认为它会很简单,但当我部署它时,我得到这个错误The UTC Offset of the local dateTime parameter does not match the offset argument.
我的猜测是,这是因为服务器不在用户相同的时区,这是没有用的,因为这将来自世界各地使用。DateTimeOffset错误:本地dateTime的UTC偏移量与偏移量参数不匹配
public object ConvertDate(DateTime inputTime, string fromOffset, string toZone)
{
var fromTimeOffset = new TimeSpan(0, - int.Parse(fromOffset), 0);
var to = TimeZoneInfo.FindSystemTimeZoneById(toZone);
var offset = new DateTimeOffset(inputTime, fromTimeOffset);
var destination = TimeZoneInfo.ConvertTime(offset, to);
return destination.DateTime;
}
凡fromOffset
是一个数字,从用户的时区转换为时间跨度和toZone
是我们转换到该区域的名称。 错误发生在这条线上var offset = new DateTimeOffset(inputTime, fromTimeOffset);
关于如何使这项工作的任何想法?
什么是'inputTime,fromTimeOffset'要传递 –
为例样本值可以是:'inputTime = 28/03/2016 6时09分49秒PM'和'fromTimeOffset = 13hrs' – Toxicable
如果对于C#'DateTime',你会发现自己说“我认为它会很简单......”,值得一读的是Jon Skeet的着名的“DateTime有什么问题吗?”关于NodaTime图书馆的诞生的帖子:http://blog.nodatime.org/2011/08/what-wrong-with-datetime-anyway.html – rob3c