将日期时间转换为通用日期时间 UTC
Convert datetime to UniversalDateTime UTC
我有一个 dateTime '1/14/2015 10:00 AM'
和带有 zimeZone 的变量,格式为“-0500”
当我转换为 UniversalTime 时,DateTime 会根据服务器位置进行转换,我如何使用具有以下值格式的变量将此 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);
MSDN - http://msdn.microsoft.com/en-us/library/System.DateTime.Parse(v=vs.110).aspx#StringToParse
A string that includes the date and time along with time zone offset information; for example:
03/01/2009 05:42:00 -5:00
给定字符串 1/13/2015 10:00 AM
和偏移量 -0200
您可以简单地将两者结合起来创建一个可以传递给 DateTime.Parse()
方法的字符串。
如果可以将偏移量转换为 HH:MM 格式,则可以使用 DateTimeOffset.ParseExact 函数。这将达到目的:
String properOffset = myOffset.Insert(3, ":"); // -0500 becomes -05:00
对于整个 "date with offset" 字符串,使用这个:
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
用于格式提供程序,并且因为您使用 /
和 :
作为日期和时间分隔符,所以 "invariant" 文化在这里可以正常工作.
像这样尝试
Convert.ToDateTime("dfsdf").ToUniversalTime();
我有一个 dateTime '1/14/2015 10:00 AM'
和带有 zimeZone 的变量,格式为“-0500”
当我转换为 UniversalTime 时,DateTime 会根据服务器位置进行转换,我如何使用具有以下值格式的变量将此 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);
MSDN - http://msdn.microsoft.com/en-us/library/System.DateTime.Parse(v=vs.110).aspx#StringToParse
A string that includes the date and time along with time zone offset information; for example:
03/01/2009 05:42:00 -5:00
给定字符串 1/13/2015 10:00 AM
和偏移量 -0200
您可以简单地将两者结合起来创建一个可以传递给 DateTime.Parse()
方法的字符串。
如果可以将偏移量转换为 HH:MM 格式,则可以使用 DateTimeOffset.ParseExact 函数。这将达到目的:
String properOffset = myOffset.Insert(3, ":"); // -0500 becomes -05:00
对于整个 "date with offset" 字符串,使用这个:
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
用于格式提供程序,并且因为您使用 /
和 :
作为日期和时间分隔符,所以 "invariant" 文化在这里可以正常工作.
像这样尝试
Convert.ToDateTime("dfsdf").ToUniversalTime();