1. UTC和GMT到底是什么

gmt和utc都是标准时间。

GMT是比较古老的时间较量标准,根据地球公转自转计算时间。UTC则是根据原子钟来计算时间,现在基本都用UTC时间。

1) 时间服务器返回的时间为1900距今的秒数,而我们需要借助unix时间函数转为可读的时间 ,因此需要先把这个时间减去70年(2208988800s)。

2) 夏令时的开始结束时间使用的是时区转化后的当地时间,因此时间服务器获取到的UTC时间需要转为本地时间,才能进行时间是否在夏令时区间的判断。

3) 美国的夏令时,从每年3月第2个星期天凌晨开始,到每年11月第1个星期天凌晨结束。以2017年为例,美国2017年夏令时从3月12日开始,到11月5日结束。

需要注意的是,美国有部分领土不实行夏令时,其中包括:亚利桑那州 (纳瓦霍人保留地除外)、夏威夷、美属萨摩亚、关岛、波多黎各、美属维京群岛。

3. 数据库存储秒数的意义

php的time() 返回1970年 0点到现在的秒数 java里也有。 这个秒数不随我们设置服务器时区而改变

所以存储要存1501829643 这个玩意,而不是2020-02-01 03:40:58

4. 程序里时区设置的意义

当我们弄清楚存储了一个固定的值,那么时区只是展示问题。

我是中国人在中国,那么程序设置为中国时区

date_default_timezone_set("Etc/GMT-8");

代表+8 区

我是美国人在美国,那么程序设置为美国时区

date_default_timezone_set("Etc/GMT+5");

代表-5区

为啥是反的,有人在官方聊过这个话题。

http://www.php.net/manual/en/timezones.others.php

The plus and minus signs (+/-) are not intuitive. For example,

“Etc/GMT-10” actually refers to the timezone “(GMT+10:00)

Canberra,Sydney,Melbourne”.

程序的时区设计仅仅为了展示给客户看。

5. 夏令时的秘密

date_default_timezone_set("America/New_York");

$time1 = date("Y-m-d H:i:s");

$times1 = strtotime($time1);

echo "纽约时区:".$time1." - ".$times1."
";

echo "该时区使用夏令时:".date('I', time()).'


';

$time = time()-2*30*24*3600;//推算到1月

$stime = strftime( "%Y-%m-%d %H:%M:%S" ,$time)."
";

echo "60天前今天现在时间:".$stime;

echo "该时区使用夏令时:".date('I', time()).'


';

echo "


";

date_default_timezone_set("ETC/GMT+4");

$time1 = date("Y-m-d H:i:s");

$times1 = strtotime($time1);

echo "GMT+4:".$time1." - ".$times1."
";

echo "该时区使用夏令时:".date('I', time()).'


';

$time = time()-2*30*24*3600;//推算到1月

$stime = strftime( "%Y-%m-%d %H:%M:%S" ,$time)."
";

echo "60天前今天现在时间:".$stime;

echo "该时区使用夏令时:".date('I', time()).'


';

echo "


";

输出

纽约时区:2020-03-30 03:31:27 - 1585553487

该时区使用夏令时:1

60天前今天现在时间:2020-01-30 02:31:27

该时区使用夏令时:1

GMT+4:2020-03-30 03:31:27 - 1585553487

该时区使用夏令时:0

60天前今天现在时间:2020-01-30 03:31:27

该时区使用夏令时:0

date_default_timezone_set("America/New_York");

这个时区的设置会因为夏令时的原因,导致在冬季时间不一样

date_default_timezone_set("ETC/GMT+4");

这种设置模式,也代表了纽约,但是在时间不受到夏令时的影响而变化。

结论:

1.当为了给客户(纽约人)看时间,应采用America/New_York,

2.当计算机为了跑一天的数据,比如今天卖了多少货物,应该用ETC/GMT+4 固定时间。不然那错开的1小时,我们计算给前一天,还是后一天,感觉都不太适合

额外的小研究:

date_default_timezone_set("UTC");

这个UTC 好像是个什么标准玩意,当设置UTC+4 UTC-8的时候,程序输出时间没有改变,所以大家设置时区用ETC/GMT才能+4 -8

夏令时国家时间java代码_程序里的国际时区和夏令时相关推荐

  1. 程序里的国际时区和夏令时

    1. UTC和GMT到底是什么 gmt和utc都是标准时间. GMT是比较古老的时间较量标准,根据地球公转自转计算时间.UTC则是根据原子钟来计算时间,现在基本都用UTC时间. 时区的设置之前研究过h ...

  2. 增删改查java代码_程序员:听说你正在为天天写增删改查代码而烦恼

    有相当多的一部分程序员一直都只接触业余应用的功能,天天写业务代码的程序员也被戏称为CURD程序员,CURD就是增(create).改(update).查(read).删(delete)的意思. CUR ...

  3. java 代码 _程序员用1.5小时写出的Java代码,让同事瞠目结舌!直呼优秀

    1.曾经不止一次在生产中见过类似这样的代码: 这有很多变种,例如用 Integer.valueOf(1). (Integer)1 之类的,那些细节都不重要.重要的是:凭空用一个 Integer 对象作 ...

  4. html列表按时间排序代码_程序员小白必看:腾讯视频版排序列表的实现

    每当我们对国产剧失望的时候 总会有一部令人惊喜的剧目横空出世 这几天你一定被一个国产剧刷屏了 它就是<隐秘的角落> 图片源于网络,仅作配文展示 也许你并不是"第一个吃螃蟹的人&q ...

  5. 不认识java代码_程序员进阶:优雅的代码对于一个架构师的重要性

    lison:复旦大学工程硕士,专注技术十年,产品控.代码控,拥有丰富的项目经验,主持研发了多个成功上线的大型互联网项目.热爱互联网,热衷于各种web技术,精通JAVA.J2EE和前端开发,擅长互联网高 ...

  6. typora的写java代码_程序员文档编辑神器typora

    今天锋哥推荐一款免费的文档编辑神器-typora Typora 是一款支持实时预览的 Markdown 文本编辑器.它有 OS X.Windows.Linux 三个平台的版本,并且由于仍在测试中,是完 ...

  7. java 夏令时区_如何获得另一个时区的夏令时状态

    假设我的Windows服务器应用程序在东部时区(NY)运行 . 我以UTC格式转换并存储每个日期时间事件(它们发生的那一刻),以便连接到服务器的任何客户端应用程序读取事件的UTC时间并转换并在客户端自 ...

  8. 用Java代码计算磁盘里的文件大小

    用Java代码计算磁盘里的文件大小 原理 代码展示 总结 原理 拿到一个文件后我们需要先判断文件是不是标准文件调用isFile()方法,如果是标准文件直接调用length()方法求文件大小,不是标准文 ...

  9. 基础贴吧java代码_原来你是这样的JAVA[01]-基础一瞥

    1.Java是什么呢? Java不仅是一门语言,而且是一个完整的平台,有一个庞大的库,其中包含了很多可重用的代码和一个提供安全性.跨操作系统的可移植性以及自动垃圾收集等服务的执行环境. 2.JDK 和 ...

  10. 给定下面的java代码_则运行_会产生类型的异常_JavaSE_笔试题_单选选择题

    JavaSE_笔试题_单选选择题1 1. 下面哪一种描述是正确的()? A:abstract修饰符可修饰字段.方法和类. B:抽象方法的body部分必须用一对大括号{}包住. C:声明抽象方法,大括号 ...

最新文章

  1. linux I/O--IO原理和几种零拷贝机制(五)
  2. 脏读,不可重复读,幻读
  3. android subString
  4. HDFS—常见面试题
  5. c语言程序综合实习学生成绩,C语言程序设计综合实习报告
  6. sentinel 时间窗口的实现
  7. Java 技术体系(JDK 与 JRE 的关系)、POJO 与 JavaBeans
  8. C# AE 对图层筛选要素后显示/只显示符合条件的要素
  9. android 权限库EasyPermissions
  10. Java编程:排序算法——插入排序
  11. 计算机哪个按键可以和弦,多指和弦常用键盘位置及指法
  12. java孢子进化_孢子的进化起源
  13. matlab窄带水平集,窄带水平集方法
  14. xmarks 又可以使用了. 太棒了
  15. 破局:技术视野与规划
  16. JavaWeb——grid布局
  17. Java打印int类型二进制
  18. 一个总经理的11个经典面试问题 (转载)
  19. 将PCAP转换为Json文件的神器:joy(安装篇)
  20. 1. Windows 10 - Node与Vue - 安装 Vue 2.x 及 3.x 框架 - 项目创建要点

热门文章

  1. XCode8编译失败问题
  2. js使用微信上传图片功能
  3. If you are using WebLogic you will need to add ‘org.slf4j‘ to prefer-application-packages in
  4. 用AutoIt写网页外挂系列之 开心网的X世界网页游戏自动送免费礼物
  5. 【AC自动机】P3966 [TJOI2013] 单词
  6. 企业信息化互联网转型“生死劫”
  7. 记录一下把域名从阿里云服务商转入到华为云
  8. 华为0基础——名字的美丽度
  9. UIPath 获取网页元素做遍历点击的实现
  10. python合法整型常量要符合什么条件_1.下列字符列中,合法的长整型常量是: 【 】...