因此,如果 Kind 未指定 DateTime 是 UTC,但在同一页面上(给定示例):
class Sample
{
public static void Main()
{
DateTime saveNow = DateTime.Now;
myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Unspecified);
Display("Unspecified: .....", myDt);
}
public static string datePatt = @"M/d/yyyy hh:mm:ss tt";
public static void Display(string title, DateTime inputDt)
{
DateTime dispDt = inputDt;
string dtString;
dtString = dispDt.ToString(datePatt);
Console.WriteLine("{0} {1}, Kind = {2}", title, dtString, dispDt.Kind);
dispDt = inputDt.ToLocalTime();
dtString = dispDt.ToString(datePatt);
Console.WriteLine(" ToLocalTime: {0}, Kind = {1}", dtString, dispDt.Kind);
dispDt = inputDt.ToUniversalTime();
dtString = dispDt.ToString(datePatt);
Console.WriteLine(" ToUniversalTime: {0}, Kind = {1}", dtString, dispDt.Kind);
Console.WriteLine();
}
}
}
输出为:
未指定:..... 2005 年 5 月 6 日下午 2:34:42,种类 = 未指定
ToLocalTime:2005 年 5 月 6 日上午 7:34:42,种类 = 本地
ToUniversalTime:5/6/2005 09:34:42 PM,Kind = Utc
所以,我遇到的问题是,如果 Unspecified 是 Utc,那么为什么 Utc 到 Utc 的转换会更改 datetime 对象值?