时间戳是从格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

现在时间戳的长度是十位(1435113975--2015/6/24 10:46:15)。

要到 2286/11/21 01:46:40 才会变成11位(10000000000),距离现在还有 271年。

不同时区获取的时间不一样,生成的时间戳会不一样,比如中国是东八区(+8),美国东部是西五区(-5),两地的时差是13小时,北京比纽约要早13个小时;

一般从中国的12月15日乘飞机去美国, 到达时间就是美国的12月15日,在中国是12月16日。

这样就导致跨时区验证时间戳会不准的情况。

所以要把日期协调成世界时间。

C#中 DateTime.ToUniversalTime 方法会把本地时间协调成世界时间。

测试代码:

string date = DateTime.Now.ToString();//本地时间

string dateAmerica = DateTime.Now.AddHours(-13).ToString();//模拟美国东部时间

object back = (DateTime.Parse(date).ToUniversalTime().Ticks - 621355968000000000) / 10000000;//协调全球时间的时间戳

object back2 = (DateTime.Parse(date).Ticks - 621355968000000000) / 10000000;//不协调全球时间的时间戳

object backA = (DateTime.Parse(dateAmerica).Ticks - 621355968000000000) / 10000000;//模拟美国东部时间的时间戳

Console.WriteLine("时间:" + date);

Console.WriteLine("协调全球时间的时间戳:" + back);

Console.WriteLine("时间戳的类型:" + back.GetType());

Console.WriteLine("时间戳的长度:" + back.ToString().Length);

Console.WriteLine("不协调全球时间的时间戳:" + back2);

Console.WriteLine("此时美国时间的时间戳:" + backA);

为什么要减去621355968000000000?

因为 DateTime.Ticks 表示自 0001 年 1 月 1 日午夜 12:00:00(表示 DateTime.MinValue)以来经过的以 100 纳秒为间隔的间隔数。 它不包括归因于闰秒的嘀嗒数。

其实是减去 0001 年 1 月 1 日午夜 12:00:00 到 1970年01月01日00时00分00秒 之间的秒数

输出:

《2038年问题》

在计算机应用上,2038年问题可能会导致某些软件在2038年无法正常工作。所有使用UNIX时 间表示时间的程序都将受其影响,因为它们以自1970年1月1日经过的秒数(忽略闰秒)来表示时间。这种时间表示法在类Unix(Unix-like)操 作系统上是一个标准,并会影响以其C编程语言开发给其他大部份操作系统使用的软件。在大部份的32位操作系统上,此“time_t”数据模式使用一个有正 负号的32位元整数(signedint32)存储计算的秒数。依照此“time_t”标准,在此格式能被表示的最后时间是2038年1月19日 03:14:07,星期二(UTC)。超过此一瞬间,时间将会被掩盖(wrap around)且在内部被表示为一个负数,并造成程序无法工作,因为它们无法将此时间识别为2038年,而可能会依个别实作而跳回1970年或1901 年。错误的计算及动作可能因此产生。

其实就是在32位系统上,长度溢出导致的异常。

mysql 2038年问题_时间戳(UnixTimestamp)与 《2038年问题》相关推荐

  1. mysql 2038年问题_当前系统在2038年之后datetime类也无法获取当前时间的解决

    由于php 32位使用 int 类型保存时间戳,也就是从1970 00:00:00 到当前时间的秒数. 而32位int 数字的取值范围是 -2147483648 到 2147483647. 所以当 时 ...

  2. Mysql的timestamp(时间戳)详解以及2038问题的解决方案

    时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数. 生产环境中部署着各种版本的MySQL,包括MySQL 5.5/5. ...

  3. php 2038年,php实现兼容2038年后Unix时间戳转换函数,2038unix_PHP教程

    php实现兼容2038年后Unix时间戳转换函数,2038unix 使用方法跟旧的函数一模一样. 复制代码 代码如下: function fun_strtotime($var1=0,$var2=0){ ...

  4. 安装mysql无法登录_【windows 下安装 mysql-server 无法登录问题解决】

    ----------------------------- 无感的首行 ----------------------------- 新版 mysql-server 5.7 安装后发现无法使用 mysq ...

  5. MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结

    MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结 一.VARCHAR存储和行长度限制 1.VARCHAR(N)中,N指的是字符的长度,VARCHAR类型最大支持65535,指的是 ...

  6. mysql中文时间转换,MySQL 当中 日期 字符串 时间戳互转

    原标题:MySQL 当中 日期 字符串 时间戳互转 平时比较常用的时间.字符串.时间戳之间的互相转换,虽然常用但是几乎每次使用时候都喜欢去搜索一下用法:本文将作为一个笔记,整理一下三者之间的 转换(即 ...

  7. mysql取前一个月时间戳_mysql中获取一天、一周、一月时间数据的各种sql语句写...

    创建表: 代码如下: create table if not exists t ( id int, addTime datetime default '0000-00-00 00:00:00′ ) 添 ...

  8. mysql数据库怎么加入时间戳

    目录 介绍 mysql中的两种时间戳 1.datetime时间戳 2.date时间戳 注意事项 1.只多不少原则 2.忽略前导0 介绍 本文将介绍在mysql数据库中添加时间戳的方法以及相关的使用方法 ...

  9. MySQL学习笔记_上(select查询)

      上次整理了一些练习发到博客上了,也说要发基础的,整理了一下午才算是把查询那块的勉强整理完,下次再整理其他的,另外还在写设计模式和数据结构的草稿,写的差不多会慢慢发的,这两项算是副线发展,主线还是按 ...

最新文章

  1. 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)
  2. ElasticSearch 索引 VS MySQL 索引
  3. Bootstrap系列 -- 6. 列表
  4. Python:利用原生函数count或正则表达式compile、findall、finditer实现匹配统计(包括模糊匹配的贪婪匹配、懒惰匹配)
  5. AI:一个20年程序猿的学习资料大全—区块链/大数据/数据集/云计算/前沿大会资料——只有你不想要的,没有你找不到的
  6. 特别企划 | 或许是史上最萌的产品经理改需求姿势(多图)
  7. amazon linux 安装nginx,linux – NGINX不显示Amazon EC2实例上的默认页...
  8. ffmpeg mp4 提取h265命令行_安装FFmpeg多媒体库,以及命令行程序使用介绍
  9. JavaSE_04异常处理
  10. java编译异常有哪些_编译时JAVA最常见的错误有哪些
  11. PAT 1013 数素数
  12. webpack+vue动态加载组件尝试
  13. 枕头Python 3
  14. mysql forward_only_mysql参数调优
  15. logback系列之二:输出日志到文件
  16. java根据ip地址获取城市地域信息
  17. 自动更新+淘客+电影网站PHP源码+手机版,可对接微信公众号带会员收费系统
  18. 疑似网易泄露用户密码事件浅析
  19. 数码宝贝相遇服务器维修中,数码宝贝相遇修炼岛速刷心得及掉落汇总
  20. 心音与心电信号分析之一--6.26--心音信号概述

热门文章

  1. 前端基础 -JQuery 删除节点
  2. 24岁女生学java是否晚了?
  3. 航空公司预订票数学建模论文
  4. 个人社保能否考二级建造师
  5. WebServlet注解
  6. Arduino ESP8266 For EEPROM数据存储示例
  7. Revit二次开发之使用LINQ查询元素过滤集合里的元素【比目鱼原创】
  8. android手机评测工具,ADB-Toolkit 测试Android设备入侵Android手机的工具
  9. English - 定冠词和不定冠词(a an the) 的区别
  10. Java 开发人员常用的服务配置(Nginx、Tomcat、JVM、Mysql、Redis)