首页 > 编程语言 >C# 获取utc时间,以及utc datetime 互相转化

C# 获取utc时间,以及utc datetime 互相转化

时间:2024-11-04 17:23:33浏览次数:1  
标签:utc UTC C# DateTime 时间 startTime 时区 datetime

转自:https://blog.csdn.net/Allen_lv/article/details/132869729

UTC、RTC、UNIX时间戳、localtime 理解
UTC 时间
UTC是世界协调时间时,UTC 是现在全球通用的时间标准,全球各地都同意将各自的时间进行同步协调。UTC 时间是经过平均太阳时(以格林威治时间GMT为准)、地轴运动修正后的新时标以及以秒为单位的国际原子时所综合精算而成。 即每一个地方在同一时刻的UTC时间是相同的。可以在UTC 时间 网站上看到当前的UTC时间。

同时为了统一各地的时间, 引入了时区的概念:

从格林威治本初子午线起,经度每向东或者向西间隔15°,就划分一个时区,在这个区域内,使用相同的时间。实际划分可能根据国家、省份的边界来定。

用UTC+或UTC- 来表示各个时区的时间,比如中国的时区时间就是UTC+8。

RTC 时钟
实时时钟(Real-time clock,RTC)是指可以像时钟一样输出实际时间的电子设备,一般会是集成电路,因此也称为时钟芯片。可以把他想象成一个存储器,里面只存储了年月日时分秒这些数据,要怎么理解这些数据就看操作系统的区别了。

大部分操作系统的时间管理包括如下方面:

启动时根据硬件时钟设置系统时间
运行时通过 NTP 守护进程联网校正时间
关机时根据系统时间设置硬件时间。
UNIX 时间
是UNIX或类UNIX系统使用的时间表示方式:从UTC 1970年1月1日0时0分0秒起至现在的总秒数,不考虑闰秒。

localtime
可以把localtime想象成我们看到的正确的时间,就是UTC+时区偏移。localtime 与硬件时间有关,Linux 中,会认为硬件中存储的时间是 UTC 时间,它想让你看到localtime,就会在硬件中存储的时间的基础上加上时区的偏移。而在windows 中就认为硬件中存储的时间是UTC+时区偏移了,它会直接进行显示。这也是我们在电脑上装了双系统之后,时间会发生错乱的原因。

总结
总之,记住一点是很重要的,UTC时间,世界同一时刻任一地方的时间都是一样的,我们要看到正确的时间,是UTC+时区偏移。下面这个图也可以帮助理解一下。

研究一下UTC时间获取,如下

DateTime dt = DateTime.UtcNow;
另:

DateTime.UtcNow.ToString();//输出的是0时区的事件,
DateTime.Now.ToString();// 输出的是当前时区的时间,我们中国使用的是东八区的时间,所以差8个小时
以下是互相转换class位utc

class utc    
{        

public static int ConvertDateTimeInt(System.DateTime time)        
{            

  double   intResult = 0;            

  System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));            

  intResult =  (time - startTime).TotalSeconds ;            

  return (int)intResult;        

}        


public static DateTime ConvertIntDatetime(double utc)        
{                    

  System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));            

  startTime = startTime.AddSeconds(utc);                

  startTime = startTime.AddHours(8);//转化为北京时间(北京时间=UTC时间+8小时 )            

  return startTime;        

}

//调用方法

// DateTime utcNow = DateTime.Now.ToUniversalTime();

// double utc= ConvertDateTimeInt(utcNow);

// DateTime dtime = ConvertIntDatetime(utc);

}

————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/Allen_lv/article/details/132869729

标签:utc,UTC,C#,DateTime,时间,startTime,时区,datetime
From: https://www.cnblogs.com/gzy2016Blog/p/18525793

相关文章

  • Neo4j 实现一个简单的CMDB管理平台
    Neo4j实现一个简单的CMDB管理平台简介Neo4j是一个高性能的图形数据库管理系统,它使用图形模型来存储和查询数据。图形数据库与传统的关系型数据库不同,它们使用节点和边来表示数据实体和它们之间的关系,而不是使用表格和行,可以使用neo4j实现权限系统,知识图谱,cmdb等部署docker......
  • Chrome与傲游浏览器性能与功能的深度对比
    在当今数字化时代,浏览器作为我们日常上网冲浪、工作学习的重要工具,其性能与功能直接影响着我们的使用体验。本文将对Chrome和傲游两款主流浏览器进行深度对比,帮助用户更好地了解它们的差异,以便做出更合适的选择。(本文由https://chrome.xahuapu.net/的作者进行编写,转载时请进行......
  • 【ONLYOFFICE 文档 8.2 版本深度测评】功能革新与用户体验的双重飞跃
    引言在数字化办公的浪潮中,ONLYOFFICE文档以其强大的在线协作功能和全面的办公套件解决方案,赢得了全球用户的青睐。随着8.2版本的发布,ONLYOFFICE再次证明了其在办公软件领域的创新能力和技术实力。一.协作编辑PDF:团队合作的新纪元1.1严格与实时协作模式ONLYOFFICE......
  • 解决 Unexpectedlexicaldeclarationincaseblock的问题
    亲测可用,若有疑问请私信使用新版的es-lint的时候扫描旧的项目,发现报了Unexpectedlexicaldeclarationincaseblock(no-case-declarations)这么一个错误提示当时很奇怪,就去查了一下文档,发现中文文档中解释比较简单该规则禁止词法声明(let、const、function和class)出......
  • ‌webdriver.Chrome()参数简介
    webdriver.Chrome()参数‌如下:‌executable_path‌:指定ChromeDriver的路径,若未设置且系统环境变量中已配置,则会自动寻找。‌options‌:通过webdriver.ChromeOptions()创建,用于设定浏览器的启动选项,如无痕浏览、禁用图片等。‌port‌:设置WebDriver服务的端口,默认是0,表示使用任意......
  • Stack Overflow 2023 年开发者调查报告!
    StackOverflow发布了2023年开发者调查报告,据称共计超过9万名开发者参与了此次调查。完整报告包含了受访开发者画像,以及关于开发技术、AI、职业、社区等方面的内容。本文主要介绍关于开发技术和AI的部分。懒人目录:最流行编程语言:JavaScript最“赚钱”编程语言......
  • Codeforces Round 983 (Div. 2) 10.31 ABC题解
    CodeforcesRound983(Div.2)10.31题解A.Circuit数学(math)贪心(greedy)模拟(implementation)题意:有\(n\)盏灯,对应\(2\astn\)个开关,即每盏灯对应两个开关,开关打开或者关闭用\(1\)和\(0\)表示。给出\(2\astn\)个开关的状态,需要求解出可能开灯的最小数量和最大数量。......
  • Oracle 查询语句使用不等于(<>或者!=)会过滤空值的解决方案
    在Oracle数据库中,使用不等于符号(<>或!=)时,确实会将NULL值过滤掉,因为NULL代表未知值。要解决这个问题,可以使用增加ORISNULL或者NVL函数来筛选出包含NULL的值。例如,假设您有一个名为column_name的列,您可以使用以下方式过滤出包含NULL的数据:SELECT*FROMyour_ta......
  • 洛谷题单指南-字符串-P6824 「EZEC-4」可乐
    原题链接:https://www.luogu.com.cn/problem/P6824题意解读:已知整数序列a[i],i在1~n,有整数k,求一个整数x,要求a[i]^x<=k,使得符合要求的a[i]数量最多,求这个数量。解题思路:1、确定x的范围由于a[i]^x<=k,因此,x的有效二进制位不可能超过a[i],而a的取值范围<=1000000,因此x差不多......
  • PLC QCA7005调试笔记
    方案选择SOC方案选择不多,暂时只发现高通和联芯通两家。模块方案较多,基本都是基于高通方案实现的。想要获取高通原厂的技术支持比较困难,但考虑到产品的稳定性还是选择了高通。高通:https://www.qualcomm.com/products/internet-of-things/networking/wi-fi-networks/qca7005联......