[英]Convert datetime to UniversalDateTime UTC
當我轉換為UniversalTime時,我有一個dateTime'1/ '1/14/2015 10:00 AM'
2015 '1/14/2015 10:00 AM'
,帶有zimeZone的變量為“ -0500”格式,轉換日期時間取決於服務器位置,如何將此dateTime解析為UniversalTime使用具有以下格式的值的變量: "-0200"
,“ +0300
”,“ -0600
”等
編輯:現在我使用此代碼:
var timeZone = "+0200";
var hoursDif = timeZone.ToString().Substring(0,3);
var minDif = timeZone.ToString().Substring(3, 2);
var TimeSpatFromZone = new TimeSpan(Convert.ToInt32(hoursDif), Convert.ToInt32(minDif), 0);
DateTime convertedStart = DateTime.Parse("1/14/2015 10:00 AM");
var datetimeUTC = new DateTime();
datetimeUTC = convertedStart + TimeSpatFromZone;
Console.WriteLine(datetimeUTC);
如果可以將偏移量轉換為HH:MM格式,則可以使用DateTimeOffset.ParseExact函數。 這將達到目的:
String properOffset = myOffset.Insert(3, ":"); // -0500 becomes -05:00
對於整個“帶有偏移的日期”字符串,請使用以下命令:
String dateToConvert = myDate + " " + myOffset.Insert(3, ":");
這會將1/14/2015 10:00 AM
和-0500
更改為1/14/2015 10:00 AM -05:00
。 然后調用ParseExact
:
DateTimeOffset myDTO = DateTimeOffset.ParseExact(
dateToConvert,
"M/dd/yyyy hh:mm tt zzz",
CultureInfo.InvariantCulture);
CultureInfo.InvariantCulture
適用於格式提供程序,並且由於您使用/
和:
作為日期和時間分隔符,因此“不變”區域性在這里可以正常工作。
MSDN- http://msdn.microsoft.com/zh-CN/library/System.DateTime.Parse( v=vs.110) .aspx#StringToParse
包含日期和時間以及時區偏移量信息的字符串; 例如:
2009/03/01 05:42:00 -5:00
給定字符串1/13/2015 10:00 AM
和偏移量-0200
您可以簡單地將二者結合起來以創建可以傳遞給DateTime.Parse()
方法的字符串。
這樣嘗試
Convert.ToDateTime("dfsdf").ToUniversalTime();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.