zoukankan      html  css  js  c++  java
  • C#令人迷惑的DateTime:世界标准时间还是本地时间?

    先来看一段代码:

    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
     
     
     

    C# 时间时区转换

    服务器在北美,用户在澳洲,c# sql 写入时间用的是 datetime.now ,读取的时候怎么把时间转换为 当地时间?

     比如我从服务器取出的时间是这样的:2014-12-04 11:59:51

    展现给用户要是这样的:2014-12-04 15:00:00

    由于截图先后顺序问题,澳洲那边的时间现在应该是和国内时间 分钟 是一样的。

    请问大侠,C# 内,时区转换怎么写(算上夏时令和冬时令)?

    最佳答案

    你先转换成UTC时间,然后再用utc时间转换成当地时间。

    DateTime st = DateTime.UtcNow;  //如果DateTime.Now.Kind==ateTimeKind.Unspecified,那就需要先DateTime time = DateTime.SpecifyKind(DateTime.Now.ToString(), DateTimeKind.Local);转换成本地时间,然后再转成UtcNow
    Console.WriteLine(st.ToLocalTime());

  • 相关阅读:
    LeetCode "Palindrome Partition II"
    LeetCode "Longest Substring Without Repeating Characters"
    LeetCode "Wildcard Matching"
    LeetCode "Best Time to Buy and Sell Stock II"
    LeetCodeEPI "Best Time to Buy and Sell Stock"
    LeetCode "Substring with Concatenation of All Words"
    LeetCode "Word Break II"
    LeetCode "Word Break"
    Some thoughts..
    LeetCode "Longest Valid Parentheses"
  • 原文地址:https://www.cnblogs.com/sjqq/p/7570876.html
Copyright © 2011-2022 走看看