簡體   English   中英

將日期時間轉換為UniversalDateTime UTC

[英]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適用於格式提供程序,並且由於您使用/:作為日期和時間分隔符,因此“不變”區域性在這里可以正常工作。

格式字符串解釋這里 DateTimeOffset 在這里介紹

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM