zoukankan      html  css  js  c++  java
  • 『片段』C# DateTime 时间相减 和 时区的关系

     本文只是基础代码片段,直接先写 结论: C# DateTime 时间相减 —— 和 时区无关,只和时间值有关。

     

    运行结果:

    测试代码:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 
     6 namespace Temp_20160623_时间时区
     7 {
     8     class Program
     9     {
    10         static void Main(string[] args)
    11         {
    12             DateTime timeNow = DateTime.Now;         //当前本地时间 (北京时间+8)
    13             DateTime timeUtcNow = DateTime.UtcNow;   //世界协调时间 (格林威治+0)
    14             DateTime timeUtcNow2 = new DateTime(
    15                 timeUtcNow.Year, timeUtcNow.Month, timeUtcNow.Day,
    16                 timeUtcNow.Hour, timeUtcNow.Minute, timeUtcNow.Second, timeUtcNow.Millisecond,
    17                 DateTimeKind.Local);                 //世界协调时间 (北京时间+0) —— 和 UTC时间 值一样 的 北京时间
    18 
    19 
    20             Console.WriteLine("北京时间+8 :" + timeNow);
    21             Console.WriteLine("格林威治+0 :" + timeUtcNow);
    22             Console.WriteLine("北京时间+8 :" + timeUtcNow2);
    23 
    24 
    25 
    26             //timeNow 和 timeUtcNow 相差 8个时区
    27             //问:       这两个时间相减 等于多少?
    28 
    29 
    30             TimeSpan timeSpan = timeNow - timeUtcNow;
    31             Console.WriteLine("({0} +8) - ({1} +0) = {2}", timeNow, timeUtcNow, timeSpan.TotalHours.ToString("F6"));
    32 
    33             TimeSpan timeSpan2 = timeNow - timeUtcNow2;
    34             Console.WriteLine("({0} +8) - ({1} +8) = {2}", timeNow, timeUtcNow2, timeSpan2.TotalHours.ToString("F6"));
    35 
    36 
    37         }
    38     }
    39 }


    于是 就有了 这样的问题 (如下问题 仅作思考):
    > 最开始, 项目是 国内项目 —— 从不考虑时区, 统一用的 +8时间, 存入数据库的 也是 +8时间.
    > 之后, 项目开始 跨国家 —— 国外用户 也能使用.
    问:
    > 如何才能 对现有改动最小 的前提下 —— 完善项目 对国际时间的支持呢 ?

    (本文 不是重量级 技术 —— 底层小细节而已,耽误大家时间的话,在此表示歉意。)

  • 相关阅读:
    log4j日志配置
    map和java对象的转换方法
    阿里巴巴的json使用时的一些转换方法
    HttpClient发送Post和Get请求
    IT网站导航
    python学习
    git解决冲突
    协程
    Python实现协程
    异步任务神器 和定时任务Celery
  • 原文地址:https://www.cnblogs.com/shuxiaolong/p/20160623_1121.html
Copyright © 2011-2022 走看看