我試圖創建一個將時間從一個時區轉換爲另一個時區的小方法。我認爲它會很簡單,但當我部署它時,我得到這個錯誤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