随笔 - 86  文章 - 0  评论 - 737  阅读 - 18万

『片段』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时间.
> 之后, 项目开始 跨国家 —— 国外用户 也能使用.
问:
> 如何才能 对现有改动最小 的前提下 —— 完善项目 对国际时间的支持呢 ?

 

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

 

posted on   InkFx  阅读(3703)  评论(2编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示