欢迎光临

木子屋

标题: C#令人迷惑的DateTime：世界标准时间还是本地时间？

作者: dnawo

日期: 2013-07-05 11:34 AM

分类: Win编程

内容: 先来看一段代码：
复制内容到剪贴板 程序代码DateTime time = DateTime.Parse("2013-07-05 00:00:00");
Console.WriteLine(time.ToUniversalTime()); //2013/7/4 16:00:00
Console.WriteLine(time.ToLocalTime()); //2013/7/5 8:00:00
这让人搞不清楚DateTime的类型，当调用ToUniversalTime方法时，它似乎是本地时间，但调用ToLocalTime方法时，它又变成了世界标准时间(UTC) 。DateTime有个只读属性Kind，指示时间类型，输出看下：
复制内容到剪贴板 程序代码Console.WriteLine(time.Kind); //DateTimeKind.Unspecified
DateTimeKind.Unspecified表示时间既未指定为本地时间，也未指定为世界标准时间 -_-#，好在，C#有提供方法让指定DateTime类型：
复制内容到剪贴板 程序代码DateTime time = DateTime.SpecifyKind(DateTime.Parse("2013-07-05 00:00:00"), DateTimeKind.Local);
Console.WriteLine(time.ToUniversalTime()); //2013/7/4 16:00:00
Console.WriteLine(time.ToLocalTime()); //2013/7/5 0:00:00
这样声明一个本地时间显然比较麻烦，平时大都使用本地时间，不明白为什么不默认为本地时间，相比之下，Javascript就比较人性化，它的Date对象总是本地时间：
复制内容到剪贴板 程序代码var time = new Date("2013-07-05 00:00:00");
document.writeln(time.toUTCString()); //Thu, 04 Jul 2013 16:00:00 GMT
document.writeln(time.toLocaleString()); //2013年7月5日 上午12:00:00

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.383 ms

返回

标题: C#令人迷惑的DateTime：世界标准时间还是本地时间？

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.383 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.492 ms

返回