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格式互转相关推荐

  1. JS获取当前时间戳与时间戳转日期时间格式

    一.获取当前时间的时间戳(三种方式) const t1 = new Date().valueOf() // 第一种,推荐 const t2 = new Date().getTime() // 第二种, ...

  2. Python中timestamp时间戳和日期时间的转换

    文章目录 将timestamp转换为时间 将时间转换为timestamp 总结 附录 将timestamp转换为时间 我们可以用time模块获取当前的时间戳 >>> import t ...

  3. js 时间戳与日期时间的相互转换

    js 时间戳与日期时间的相互转换 时间戳:指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数. 1.获取时间戳 1)获取当前时 ...

  4. 日期时间转时间戳以及时间戳转日期时间

    直接给出两个函数,第一个函数是将日期时间类型的列表转为时间戳类型的列表,第二个则是将时间戳类型的列表转为日期时间类型的列表. 日期时间转时间戳 def datetime_to_timestamp(se ...

  5. python时间加减秒_Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年...

    计算年.月.日需要安装组件包 pip install python-dateutil 当前日期时间 import datetime print datetime.datetime.now() # 20 ...

  6. 将10位或13位时间戳转换为日期+时间--yyyy-MM-dd HH:mm:ss

    将10位或13位时间戳转换为日期+时间–yyyy-MM-dd HH:mm:ss public static void main(String[] args) {// 10位 秒时间戳 转换String ...

  7. 日期时间表示格式大全: ISO 8601、RFC、时间戳、Excel...

    有很多种日期和时间表示格式,其中一些较常见的格式如下: ISO 8601:这是一种国际标准的日期和时间表示方式,格式为YYYY-MM-DDTHH:mm:ss.sssZ,其中 YYYY 代表四位数年份, ...

  8. 【Python】日期时间类型格式与时间戳转换

    获取当前时间 time.time():返回当前时间(系统时间)的时间戳 时间类型转换 时间类型 time库中定义的时间结构体struct_time 表示日期.时间的字符串 从UTC零时区的1970年1 ...

  9. 零基础学Python(第十五章 日期时间datetime、time、Calendar)

    本套学习内容共计[22]个章节,每个章节都会有对应的从0-1的学习过程详细讲解,希望可以给更多的人提供帮助. 开发环境:[Win10] 开发工具:[Visual Studio 2019] 本章内容为: ...

  10. js中时间戳与日期时间之间的相互转换

    1.时间戳转换为标准日期时间格式: function timeFormat(dateStr) {var date = new Date(dateStr);Y = date.getFullYear() ...

最新文章

  1. mysql int(40)_MySQL Integer类型与INT(11)
  2. mxnet根据相似度进行人脸样本对图片清理
  3. Leetcode 61 旋转链表 (每日一题 20210723)
  4. 大数据独角兽TOP10榜单发布,“内永洪,外Tableau”领跑BI领域
  5. [数据结构] - 串
  6. c语言构造报文,构造一个缓冲区溢出的C语言的例子
  7. 如何确定你的伴侣真的爱你?复杂数学公式告诉你
  8. 数组作为方法的返回值
  9. 怎样高效地管理自己阅读过的文献资料?
  10. 在计算机网络中 将网络的层次结构图,计算机网络基础试卷8
  11. 如何获得静态IP资源?
  12. 物流快递发货单接口API代码-快递100API
  13. iphone 11显示连接服务器出现错误,iPhone11投屏方法有哪些?iPhone投屏失败的原因及解决方法...
  14. 【遇见CUDA】CUDA算法效率提升关键点概述
  15. SVN 错误 Access to SVN Repository Forbidden的原因及解决方法
  16. CSS盒模型(详解)
  17. SuMa++: Efficient LiDAR-based Semantic SLAM
  18. hiho一下 第139周 买零食 动态规划
  19. ubuntu 安装Apache2
  20. SWUST OJ 320: 鸡兔同笼

热门文章

  1. 如何成为一名机器学习算法工程师?
  2. 服务器系统分辨率调不了,win10系统分辨率调整显示灰色_网站服务器运行维护
  3. word流程图两条线的端点连接_word流程图连接线怎么画直
  4. python类方法重写和重载的区别_python 重载和重写的区别
  5. python模拟ios点击_使用Xcode + Python进行IOS运动轨迹模拟
  6. 使用文本标签做一个简单的自我介绍
  7. CAML: FAST CONTEXT ADAPTATION VIA META-LEARNING
  8. [NOI2014]起床困难综合症
  9. javascript文档_用javascript print js打印文档的最简单方法
  10. linux 7 恢复系统,CentOS 7在grub rescue模式中修复系统