2
我有最簡單的方法解析一個字符串到DateTime 但返回類型是DateTimeOffset?。爲什麼DateTime.TryParseExact()爲這些輸入字符串返回不同的時區?
我預計輸出爲
2011-01-11 00:00:00 +01:00
2011-10-11 00:00:00 +01:00
而是它是
2011-01-11 00:00:00 +01:00
2011-10-11 00:00:00 +02:00
爲什麼會出現這種現象?我的測試程序如下。
class Program
{
static void Main(string[] args)
{
Console.WriteLine(Parse("20110111").ToString());
Console.WriteLine(Parse("20111011").ToString());
Console.ReadLine();
}
public static DateTimeOffset? Parse(string date)
{
DateTime parsedDate;
if (DateTime.TryParseExact(date, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out parsedDate))
{
return parsedDate;
}
return null;
}
}
@JoelCoehoorn,謝謝你的編輯:) – Habib
爲了擴大這一點 - 本地計算機的時區正在被應用,當'parsedDate'變量被隱式地從DateTime轉換爲DateTimeOffset? ,因爲這就是聲明爲方法的返回類型。 –