C#时间戳与日期时间DateTime格式互转
C#时间戳与日期时间DateTime格式互转
- 前言
- 标准格林威治时间
- 标准北京时间
- 时间对照表
- 时间戳在线转换工具
- 代码如下
- 输出效果
- 补充:C#时间格式说明
前言
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)
是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
Unix时间戳的0按照ISO 8601规范为 :1970-01-01T00:00:00Z.
一个小时表示为Unix时间戳格式为:3600秒;一天表示为UNIX时间戳为86400秒,闰秒不计算。
在大多数的Unix系统中Unix时间戳存储为32位,这样会引发2038年问题或Y2038。
标准格林威治时间
1970年01月01日 00时00分00秒 起 至现在的总(毫)秒数
标准北京时间
1970年01月01日 08时00分00秒 起 至现在的总(毫)秒数
时间对照表
时间 | 秒 |
---|---|
1 分钟 | 60 |
1 小时 | 3600 |
1 天 | 86400 |
1 周 | 604800 |
1 月 (30.44 天) | 2629743 |
1年 (365.24 天) | 31556736 |
时间戳在线转换工具
https://tool.lu/timestamp
代码如下
/// <summary>/// 时间戳操作类/// </summary>public class CommonTimeStamp{#region 标准北京时间(1970年01月01日08时00分00秒)#region 10位时间戳转换(秒级)/// <summary>/// 【秒级】获取时间(北京时间)/// </summary>/// <param name="timestamp">10位时间戳</param>public static DateTime GetDateTimeSeconds(long timestamp){long begtime = timestamp * 10000000;DateTime dt_1970 = new DateTime(1970, 1, 1, 8, 0, 0);long tricks_1970 = dt_1970.Ticks;//1970年1月1日刻度long time_tricks = tricks_1970 + begtime;//日志日期刻度DateTime dt = new DateTime(time_tricks);//转化为DateTimereturn dt;}/// <summary>/// 【秒级】生成10位时间戳(北京时间)/// </summary>/// <param name="dt">时间</param>public static long GetTimeStampSeconds(DateTime dt){DateTime dateStart = new DateTime(1970, 1, 1, 8, 0, 0);return Convert.ToInt64((dt - dateStart).TotalSeconds);}#endregion#region 13位时间戳转换(毫秒级)/// <summary>/// 【毫秒级】获取时间(北京时间)/// </summary>/// <param name="timestamp">10位时间戳</param>public static DateTime GetDateTimeMilliseconds(long timestamp){long begtime = timestamp * 10000;DateTime dt_1970 = new DateTime(1970, 1, 1, 8, 0, 0);long tricks_1970 = dt_1970.Ticks;//1970年1月1日刻度long time_tricks = tricks_1970 + begtime;//日志日期刻度DateTime dt = new DateTime(time_tricks);//转化为DateTimereturn dt;}/// <summary>/// 【毫秒级】生成13位时间戳(北京时间)/// </summary>/// <param name="dt">时间</param>public static long GetTimeStampMilliseconds(DateTime dt){DateTime dateStart = new DateTime(1970, 1, 1, 8, 0, 0);return Convert.ToInt64((dt - dateStart).TotalMilliseconds);}#endregion#endregion#region 标准格林威治时间(Unix时间戳:1970年01月01日00时00分00秒)#region 10位时间戳转换(秒级)/// <summary>/// 【秒级】获取时间(格林威治时间)/// </summary>/// <param name="timestamp">10位时间戳</param>public static DateTime GetUnixDateTimeSeconds(long timestamp){long begtime = timestamp * 10000000;DateTime dt_1970 = new DateTime(1970, 1, 1, 0, 0, 0);long tricks_1970 = dt_1970.Ticks;//1970年1月1日刻度long time_tricks = tricks_1970 + begtime;//日志日期刻度DateTime dt = new DateTime(time_tricks);//转化为DateTimereturn dt;}/// <summary>/// 【秒级】生成10位时间戳(格林威治时间)/// </summary>/// <param name="dt">时间</param>public static long GetUnixTimeStampSeconds(DateTime dt){DateTime dateStart = new DateTime(1970, 1, 1, 0, 0, 0);return Convert.ToInt64((dt - dateStart).TotalSeconds);}#endregion#region 13位时间戳转换(毫秒级)/// <summary>/// 【毫秒级】获取时间(格林威治时间)/// </summary>/// <param name="timestamp">10位时间戳</param>public static DateTime GetUnixDateTimeMilliseconds(long timestamp){long begtime = timestamp * 10000;DateTime dt_1970 = new DateTime(1970, 1, 1, 0, 0, 0);long tricks_1970 = dt_1970.Ticks;//1970年1月1日刻度long time_tricks = tricks_1970 + begtime;//日志日期刻度DateTime dt = new DateTime(time_tricks);//转化为DateTimereturn dt;}/// <summary>/// 【毫秒级】生成13位时间戳(格林威治时间)/// </summary>/// <param name="dt">时间</param>public static long GetUnixTimeStampMilliseconds(DateTime dt){DateTime dateStart = new DateTime(1970, 1, 1, 0, 0, 0);return Convert.ToInt64((dt - dateStart).TotalMilliseconds);}#endregion#endregion}
输出效果
标准格林威治时间
datetime格式:(秒级)
2021-10-11 18:00:07
10位时间戳:
1633975207
datetime格式:(毫秒级)
2021-10-11 18:03:02.197
13位时间戳:
1633975382197
标准北京时间
datetime格式:(秒级)
2021-10-11 17:57:42
10位时间戳:
1633946262
datetime格式:(毫秒级)
2021-10-11 17:12:19.457
13位时间戳:
1633943539457
补充:C#时间格式说明
日期格式:yyyyMMdd HH:mm:ss(注意严格区分字母大小写)
d月中的某一天。一位数的日期没有前导零。
dd月中的某一天。一位数的日期有一个前导零。
ddd周中某天的缩写名称,在AbbreviatedDayNames中定义。
dddd周中某天的完整名称,在DayNames中定义。
M月份数字。一位数的月份没有前导零。
MM月份数字。一位数的月份有一个前导零。
MMM月份的缩写名称,在AbbreviatedMonthNames中定义。
MMMM月份的完整名称,在MonthNames中定义。
y不包含纪元的年份。如果不包含纪元的年份小于10,则显示不具有前导零的年份。
yy不包含纪元的年份。如果不包含纪元的年份小于10,则显示具有前导零的年份。
yyyy包括纪元的四位数的年份。
gg时期或纪元。如果要设置格式的日期不具有关联的时期或纪元字符串,则忽略该模式。
h12小时制的小时。一位数的小时数没有前导零。
hh12小时制的小时。一位数的小时数有前导零。
H24小时制的小时。一位数的小时数没有前导零。
HH24小时制的小时。一位数的小时数有前导零。
m分钟。一位数的分钟数没有前导零。
mm分钟。一位数的分钟数有一个前导零。
s秒。一位数的秒数没有前导零。
ss秒。一位数的秒数有一个前导零。
f秒的小数精度为一位。其余数字被截断。
ff秒的小数精度为两位。其余数字被截断。
fff秒的小数精度为三位。其余数字被截断。
ffff秒的小数精度为四位。其余数字被截断。
fffff秒的小数精度为五位。其余数字被截断。
ffffff秒的小数精度为六位。其余数字被截断。
fffffff秒的小数精度为七位。其余数字被截断。
C#时间戳与日期时间DateTime格式互转相关推荐
- JS获取当前时间戳与时间戳转日期时间格式
一.获取当前时间的时间戳(三种方式) const t1 = new Date().valueOf() // 第一种,推荐 const t2 = new Date().getTime() // 第二种, ...
- Python中timestamp时间戳和日期时间的转换
文章目录 将timestamp转换为时间 将时间转换为timestamp 总结 附录 将timestamp转换为时间 我们可以用time模块获取当前的时间戳 >>> import t ...
- js 时间戳与日期时间的相互转换
js 时间戳与日期时间的相互转换 时间戳:指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数. 1.获取时间戳 1)获取当前时 ...
- 日期时间转时间戳以及时间戳转日期时间
直接给出两个函数,第一个函数是将日期时间类型的列表转为时间戳类型的列表,第二个则是将时间戳类型的列表转为日期时间类型的列表. 日期时间转时间戳 def datetime_to_timestamp(se ...
- python时间加减秒_Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年...
计算年.月.日需要安装组件包 pip install python-dateutil 当前日期时间 import datetime print datetime.datetime.now() # 20 ...
- 将10位或13位时间戳转换为日期+时间--yyyy-MM-dd HH:mm:ss
将10位或13位时间戳转换为日期+时间–yyyy-MM-dd HH:mm:ss public static void main(String[] args) {// 10位 秒时间戳 转换String ...
- 日期时间表示格式大全: ISO 8601、RFC、时间戳、Excel...
有很多种日期和时间表示格式,其中一些较常见的格式如下: ISO 8601:这是一种国际标准的日期和时间表示方式,格式为YYYY-MM-DDTHH:mm:ss.sssZ,其中 YYYY 代表四位数年份, ...
- 【Python】日期时间类型格式与时间戳转换
获取当前时间 time.time():返回当前时间(系统时间)的时间戳 时间类型转换 时间类型 time库中定义的时间结构体struct_time 表示日期.时间的字符串 从UTC零时区的1970年1 ...
- 零基础学Python(第十五章 日期时间datetime、time、Calendar)
本套学习内容共计[22]个章节,每个章节都会有对应的从0-1的学习过程详细讲解,希望可以给更多的人提供帮助. 开发环境:[Win10] 开发工具:[Visual Studio 2019] 本章内容为: ...
- js中时间戳与日期时间之间的相互转换
1.时间戳转换为标准日期时间格式: function timeFormat(dateStr) {var date = new Date(dateStr);Y = date.getFullYear() ...
最新文章
- mysql int(40)_MySQL Integer类型与INT(11)
- mxnet根据相似度进行人脸样本对图片清理
- Leetcode 61 旋转链表 (每日一题 20210723)
- 大数据独角兽TOP10榜单发布,“内永洪,外Tableau”领跑BI领域
- [数据结构] - 串
- c语言构造报文,构造一个缓冲区溢出的C语言的例子
- 如何确定你的伴侣真的爱你?复杂数学公式告诉你
- 数组作为方法的返回值
- 怎样高效地管理自己阅读过的文献资料?
- 在计算机网络中 将网络的层次结构图,计算机网络基础试卷8
- 如何获得静态IP资源?
- 物流快递发货单接口API代码-快递100API
- iphone 11显示连接服务器出现错误,iPhone11投屏方法有哪些?iPhone投屏失败的原因及解决方法...
- 【遇见CUDA】CUDA算法效率提升关键点概述
- SVN 错误 Access to SVN Repository Forbidden的原因及解决方法
- CSS盒模型(详解)
- SuMa++: Efficient LiDAR-based Semantic SLAM
- hiho一下 第139周 买零食 动态规划
- ubuntu 安装Apache2
- SWUST OJ 320: 鸡兔同笼
热门文章
- 如何成为一名机器学习算法工程师?
- 服务器系统分辨率调不了,win10系统分辨率调整显示灰色_网站服务器运行维护
- word流程图两条线的端点连接_word流程图连接线怎么画直
- python类方法重写和重载的区别_python 重载和重写的区别
- python模拟ios点击_使用Xcode + Python进行IOS运动轨迹模拟
- 使用文本标签做一个简单的自我介绍
- CAML: FAST CONTEXT ADAPTATION VIA META-LEARNING
- [NOI2014]起床困难综合症
- javascript文档_用javascript print js打印文档的最简单方法
- linux 7 恢复系统,CentOS 7在grub rescue模式中修复系统