当前位置: 首页 > news >正文

vps可以做wordpress和ssr唐山seo排名

vps可以做wordpress和ssr,唐山seo排名,深圳农产品网站制作,wordpress 关闭草稿http://www.cnblogs.com/snake-hand/archive/2013/06/10/3131157.html 最近同事W发现使用Java Date创建日期,在不同的机器上执行,得到的部分天小时数不一致。一开始怀疑机器的时间同步有问题,便拿到自己的机器上运行,异常复现&…

http://www.cnblogs.com/snake-hand/archive/2013/06/10/3131157.html

最近同事W发现使用Java Date创建日期,在不同的机器上执行,得到的部分天小时数不一致。一开始怀疑机器的时间同步有问题,便拿到自己的机器上运行,异常复现,开始排查。

一. 测试代码

 

package com.bc.time;import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;public class TimeZoneTest {public static void main(String[] args) {TimeZoneTest test = new TimeZoneTest();final long ONE_DAY_MILLIS = 1000 * 3600 * 24L;Date date0 = new Date(ONE_DAY_MILLIS * 0);System.out.println("start date=" + test.format(date0) + "millis=" +  date0.getTime());System.out.println("********************");int count = 0;for (int i = 0; i < 300000; ++i) {long millis = ONE_DAY_MILLIS * i;Date date = new Date(millis);if (date.getHours() != 8 || date.getMinutes() != 0 || date.getSeconds() != 0) {System.out.println("i = " + i + " | " + test.format(date) + "| " + date + ", millis=" + millis);GregorianCalendar newDate = new GregorianCalendar();newDate.setTimeInMillis(millis);System.out.println("i = " + i + " | newDate " + newDate.getTimeInMillis() + "| " + newDate);count++;}}System.out.println("count=" + count);}public String format(Date date){SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String dateStr = format.format(date);return dateStr;}
}
首先,Date和Calendar计算的都是local time,和本地的时区有关,任何联网计算机的系统时间都是一致的。
按照每天都是24小时的假设,上述程序的if条件理应恒为false,有意思的是,从1986-05-04这天开始,打出的时间不再是8:00,而是9:00点,一共打出了903个日期,最后一个日期是1991-09-14 09:00:00。
二. 恼人的夏令时
既然"异常"是从1986-05-04这天开始的,先从这天排查,该天正好是个夏令时。以下摘抄来自百度百科:
夏时制(Daylight Saving Time:DST),又称“日光节约时制”和“夏令时间”,是一种为节约能源而人为规定地方时间的制度,在这一制度实行期间所采用的统一时间称为“夏令时间”。一般在天亮早的夏季人为将时间提前一小时,可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电。各个采纳夏时制的国家具体规定不同。目前全世界有近110个国家每年要实行夏令时。 自2011年3月27日开始俄罗斯永久使用夏令时,把时间拨快一小时,不再调回。
夏令时会导致某一天多出一个小时,或者少出一个小时。
那Java中那些天是夏令时呢,见代码:
package com.bc.time;import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
import java.text.SimpleDateFormat;public class WhatTime {/*** Dates  those have not EXACTLY 24 hours ?**/public static void testDayTime(TimeZone timeZone){SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");System.out.println("Time Zone is " + timeZone.getDisplayName() + " " + timeZone.getID());Calendar start = Calendar.getInstance(timeZone);start.setTime(new Date(0));//UTC 1970-01-01System.out.println("start=" + fmt.format(start.getTime()));long end = Calendar.getInstance(timeZone).getTimeInMillis();//current timeboolean find = false;for(long i = start.getTimeInMillis(); i < end; i= start.getTimeInMillis() ){start.add(Calendar.DATE, 1); //add one dayif((start.getTimeInMillis() - i)%(24*3600*1000L) != 0){find = true;System.out.println("from " + fmt.format(new Date(i)) +"to " + fmt.format(start.getTime()) +" has " + (start.getTimeInMillis() - i) + "ms" +"[" + (start.getTimeInMillis() - i)/(3600*1000L) + "hours]");}}if(!find){System.out.println("Every day is ok.");}}public static void main(String argv[] ) throws Exception{TimeZone timeZone = TimeZone.getDefault();WhatTime.testDayTime(timeZone);System.out.println("----------------------------------------------------------------");timeZone = TimeZone.getTimeZone("GMT");WhatTime.testDayTime(timeZone);}}

 

Time Zone is 中国标准时间 Asia/Shanghai
start=1970-01-01 08:00:00
from 1986-05-03 08:00:00to 1986-05-04 08:00:00 has 82800000ms[23hours]
from 1986-09-13 08:00:00to 1986-09-14 08:00:00 has 90000000ms[25hours]
from 1987-04-11 08:00:00to 1987-04-12 08:00:00 has 82800000ms[23hours]
from 1987-09-12 08:00:00to 1987-09-13 08:00:00 has 90000000ms[25hours]
from 1988-04-09 08:00:00to 1988-04-10 08:00:00 has 82800000ms[23hours]
from 1988-09-10 08:00:00to 1988-09-11 08:00:00 has 90000000ms[25hours]
from 1989-04-15 08:00:00to 1989-04-16 08:00:00 has 82800000ms[23hours]
from 1989-09-16 08:00:00to 1989-09-17 08:00:00 has 90000000ms[25hours]
from 1990-04-14 08:00:00to 1990-04-15 08:00:00 has 82800000ms[23hours]
from 1990-09-15 08:00:00to 1990-09-16 08:00:00 has 90000000ms[25hours]
from 1991-04-13 08:00:00to 1991-04-14 08:00:00 has 82800000ms[23hours]
from 1991-09-14 08:00:00to 1991-09-15 08:00:00 has 90000000ms[25hours]
----------------------------------------------------------------
Time Zone is 格林威治时间 GMT
start=1970-01-01 08:00:00
Every day is ok.
三. 结论
1. 原来Java中不是每天都是标准的24个小时,可能是23,也可能是25
2. 日期的计算,使用Calendar提供的API,是不会出差错的,简单的new Date(long milliseconds)可能并不靠谱
3. 来自多方协作的项目,最好使用统一的时间标准,例如系统时间,或是统一时区
4. 好消息是,从1992年开始,中国已经停止使用夏令时。
四. 附录
详细的夏令时时区数据页面:http://www.twinsun.com/tz/tz-link.htm

转载于:https://www.cnblogs.com/quietwalk/p/7573240.html

http://www.lbrq.cn/news/2777761.html

相关文章:

  • 济南高新区 网站建设太原网站快速排名优化
  • 做的最好的相亲网站有哪些独立站谷歌seo
  • 阿里云ace+wordpress网站快速优化排名方法
  • 中山网站建设的价格成人本科报考官网
  • wordpress 飞龙博客 许愿墙常德网站seo
  • 网站开发工程师助理百度百家号注册
  • 企业手机版网站百度网盘电脑版下载
  • 兰州做网站优化短视频推广公司
  • 做游戏网站赚钱吗seo效果检测步骤
  • 中卫网站推广优化公司seo的中文意思
  • 模板建站优缺点app开发工具
  • 怎么做跨境电商网站关键词搜索方法
  • 网站页脚设计代码百度官网平台
  • 到那里找做网站的兼职广州新闻最新消息今天
  • 如何设计购物网站龙岗网站设计
  • 仪征 网站建设亚马逊关键词优化怎么做
  • 西安紧急通知南京怎样优化关键词排名
  • 做网站开发要具备哪些素质电商网站卷烟订货流程
  • 牛商网建站最大的中文搜索引擎
  • 有没有做古装衣服的网站如何提升网站seo排名
  • 企业网站设计与建设站长工具关键词查询
  • 做普通网站公司吗甘肃seo技术
  • 专业web网站设计最火的推广软件
  • ie的常用网站厦门seo屈兴东
  • 温州公司做网站西安seo网站优化
  • 宁波建设协会网站首页百度收录好的免费网站
  • 网站开发中数据库的功能在线识别图片找原图
  • 手机网站开发ios广告代运营
  • 网站建设开发公司seo全网图文推广
  • 东莞网站建设定制互动营销用在哪些推广上面
  • Java I/O 模型精讲:从传统BIO到高性能NIO与AIO
  • 大模型 + 垂直场景:搜索/推荐/营销/客服领域开发新范式与技术实践
  • Day7--滑动窗口与双指针--1695. 删除子数组的最大得分,2958. 最多 K 个重复元素的最长子数组,2024. 考试的最大困扰度
  • 从 ORA-12703 到顺利入库:Go + Oracle 11g GBK 字符集踩坑记20250818
  • [免费]基于Python的全国气象数据采集及可视化大屏系统(Flask+request库)【论文+源码+SQL脚本】
  • 算法-决策树