java new Date() 与系统时间相差16个小时

最近遇到个奇葩的神坑,通过Date date = new Date();获取时间戳以秒为单位本地测试完好(jdk1.8,时区为标准的东八区),但是一上生产取得时间戳就与系统相差16个小时,生产时区为西八区然后日期时间完全改为跟东八区北京时间一致(jdk1.5);麻烦哪位大神老师解解惑,急等啊。。

public static int getSecondTimestampTwo(new Date()) {
    log.info("UserAuthorization_Date2===" + date);
    if (null == date) {
        return 0;
    }
    String timestamp = String.valueOf(date.getTime() / 1000);
    log.info("UserAuthorization_Date_timestamp===" + timestamp);
    return Integer.valueOf(timestamp);
}

2个回答

是不是jdk1.5 默认时区是东八区的原因啊,new Date();因为要用东八区的而现在系统时西八区所以会去加上16个小时啊??
比如现在系统时 2018-12-14 22:49:00 然后取出来就是 2018-12-15 18:49:00这样子啊???

时间戳使用的是UTC,也就是当地时间和时区经过换算后,和0时区统一的时间。对于中国来说,换算成UTC需要-8小时。(也就是+16小时再减1天)

ly124100427
N_years 已解决了,服务器是西八区时区日期时间都是跟北京时间一致又不能改服务器的时区(Fri Dec 14 12:28:52 GMT-08:00 2018),所以是吧他转为东八区时间(Fri Dec 14 12:28:52 GMT+08:00 2018)在取时间戳就可以和当前时间对得上了,感谢你的回复。。
9 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
java new date 与系统时间相差8小时
Date d = new Date(); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd kk:mm:ss "); sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); //格式差8小时 System.out.println(sdf.format(d)); 或者:    
new Date()的时间和系统时间不一致
今天发现自动获取当前时间 new Date() 总是和系统时间不一致,相差8小时。 看了看windows的时区设置,东八区,没错,但new Date()出来的就是格林威治时间。 看了下注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones ,确实主键没有值,可能就是因为拿不到主键值,于是就取默...
mysql数据库插入时间和系统时间相差8个小时
解决办法: 在jdbc的url中加入 &useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
mysql数据库插入时间与系统时间相差12小时
mysql数据库插入时间与系统时间相差12小时问题出现缘由解决方法1. 修改JVM时间结果2.修改catalina.sh文件结果 问题出现缘由 今天发现Java后端用new Date()获取到的时间插入到mysql时候却相差了12个小时。前提是系统时间正常,数据库时间正常(此处的正常是指时区为北京时区,数据库时间也设置GMT+8),排除了以上两个可能出现问题的可能性之后。后来发现tomcat启动打...
centos系统时间与硬件时间相差12小时
[root@master ~]# date Sun Apr 23 17:20:49 CST 2017 [root@master ~]# hwclock Sun 23 Apr 2017 05:20:54 PM CST  -0.610167 seconds 老是以为相差12小时,其实是硬件时间是以12小时制表示的,后面有PM所以与系统时间是差不多的(要细心,引以为戒)
不常见的Date使用问题
问题最近维护老项目,遇到一个遗留的日期传输问题。A系统远程调用B系统获取申请时间字段,B系统接口返回的申请时间是String类型,结果A、B两个系统显示的申请时间不一样,A系统的申请时间比B系统的提前了14个小时,问题可以通过简单的代码复现。Date currentDate = new Date(); System.out.println("currentDate:" + currentDate);
java Date类与本地时间相差13小时
 今天将运行项目是发现服务器(Tomcat)的时间与本地时间相差13小时(Linux服务器在国外),后来发现原来是jvm的时区有问题,本地是CST就是GMT+8,而 jvm是EST国外的时区(测试直接打印Date类就行了:System.out.printfln(new Date())),而jvm的时区是读取系统时区得来的,所以修改系统时区为GMT+8就行了。 解决方法: 1.连接服务器输入:d...
Java 中 Date date = new Date(System.currentTimeMillis()); ??
工作中用到了java.util.Date这个类,现在项目又与美国那边合作,于是得考虑时差问题,rnrn先用这个类做了实验,Date date = new Date(System.currentTimeMillis());用System.out.print("Date: "+date);输出后结果为:rnDate: Fri Feb 01 10:49:44 CST 2008rnrn这个怎么解释,我觉得应该输出Date: Fri Feb 01 10:49:44 GMT+8 2008,这个不输出的话也得是GMT或UTC呀,怎么出来这个CST(美国中部时间)呢?
java new出来的时间比系统时间快了一个小时
public static void main(String[] args) throws Exception { Calendar rightNow = Calendar.getInstance(); SimpleDateFormat sdfHHmm = new SimpleDateFormat("HH:mm"); System.out.println(sdfHHmm.format(ne...
java 时间转换date time = new date()
java 时间转换 date time = new date() 对时间的格式化。这个可以帮助大家解决时间的问题
oracle 如何判断系统时间和数据表中的时间相差多少小时???
oracle 如何判断系统时间和数据表中的时间相差多少小时???rn谢谢!
晕死,Date获取的系统时间和真实时间为什么会相差8小时
rt,不管是使用那个locale,获得的总是错误的时间.也用过Calendar来获取时间,但结果一样.大家有没有遇到过这样的问题?
Java获取时间与系统时间相差8小时终极解决方案
Java获取时间与系统时间相差8小时终极解决方案 一、在取日期以前设置一下时区(日期格式化前加上下面的代码段) TimeZone tz = TimeZone.getTimeZone(“ETC/GMT-8″); TimeZone.setDefault(tz); 或者(可以测试一下) TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai"); 例...
java 计算发帖时间和当前时间相差的小时
我在做一个论坛 想要得到 发帖时间到目前时间相差多少 不到一个小时的显示多少分钟 大于一个小时小于24小时的 显示小时 大于24小时的 显示天。rn急啊 谢谢各位了
linux内核日志时间和date时间不一致,正好相差12小时
使用命令 tail -f /var/log/messages查看日志,发现显示的时间和date时间正好相差12小时,时区是CST,这是什么原因?
new Date与new Date()区别是什么?
rnDate是类rnrn有语句 Date * dp = new Date;rnnew Date与new Date()区别是什么?
关于java new Date()的疑问
情况是这样,以前写的一个java工具,生成当天日期处理后写入数据库rn今天在中午13点左右员工操作后发现数据库中日期为2012-09-01 13:30:00rn日期莫名其妙加了24小时,更奇怪的是下午又自动正常了,只有13点多的数据有异常rn期间没有更改电脑时间,系统为xp rnjava中使用的是new date(),百思不得其解 希望大家提提看法。谢谢
java 中 new Date() 问题
为什么这段代码会说我 new Date() 有问题?rnrnimport java.util.*;rnrnpublic class Test rn public static void main(String[] args) rn String s = String.format("%tc", new Date());rn System.out.println(s);rn rnrnrn而一旦把 import 改成 import java.util.Date; 就没问题了?用 * 号不是相当于把全部类的引入了吗?
Windows10和Ubuntu16.04 系统时间相差8小时
打开终端输入–》sudo timedatectl set-local-rtc 1     ——》回车,重启电脑!
Django时间与系统时间相差8小时
settings中修改为USE_TZ = False,问题解决
date显示系统时间失败
以下是一段shell程序,用于显示当前系统时间,保存文件名为abc。rn#!/bin/bashrnrn#function timernTime()rnrnTM='date +%R'rnecho "The system time now is $TM "rnrnrnecho "now is going to the function Time"rnrnTimernrnecho "back from the function Time"rnrn但是却不能得到想要的结果,显示结果为:rn$ ./abcrnnow is going to the function TimernThe system time now is date +%R rnback from the function Timernrn请问这是为什么呢?rn谢谢!
date 获取、修改系统时间
简介date(print or set the system date and time)是一个显示或修改系统时间的命令. 说明N/A 功能1. 得到格式化的时间显示 2. 获取时间戳 3. 设定系统时间 场景# 当前年月日时分秒 date +'%Y-%m-%d %H:%M:%S'# 当前日期, 时间 date +'%D %T'# 获取当前时间的unix时间戳 date +%s# 获取时间戳对应时间
Date类-时间格式-系统时间
获取系统当前时间可以使用System.currentTimeMillis()方法获取系统当前时间,从1970年1月1日午夜开始,得到的是毫秒数Calendar日历类可以帮我们进行时间和年、月、日、时、分、秒、星期之类的字段进行转换的类获取对象//得到日历对象(默认时间的是当前系统时间) Calendar c = Calendar.getInstance(); 获取毫秒数c.getTimeInMill
NSDate相差8个小时问题
iOS NSDate处理相差8个小时的问题
系统时间Java自动加上相应的小时
  Calendar calendar = Calendar.getInstance(); DateFormat formatl=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String gjtime=formatl.format(calendar.getTime()); System.out.println(...
区分Date对象、new Date()和Date()函数
区分Date对象、new Date()和Date()函数
获得的系统时间的小时晚8个小时
$hh=date("his");rnecho $hh;rn输出的小时,晚8个小时,请问各路大侠怎么解决?
Date java 时间 相关 获取当前的系统时间 ..
[code="java"] DateFormat df = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss "); System.out.println(df.format(new Date())); String time =df.format(new Date()); DateFormat df...
Java Date取出时间与系统时间对不上
[img=http://nj.disk.ftn.qq.com/ftn_handler/c095f148756296ff9294ff80105218ce1d8057088ab16852b29fbf20d51c52036b157c8d4bf93e4ffd3254b2e67295357683cc992d78329af4073246348d230b/QQ%E6%88%AA%E5%9B%BE20120411165449.jpg][/img]rnrn我通过Date获取到的时间 总是比系统当前时间少8个小时 这是为什么啊?
new Date() 系统时间从1970年1月1日开始计算
(有意思的冷知识) 很多程序语言里,定义time 从 1970 年 1 月 1 日开始,忽然想到在 Java 里, Oracle 数据库时间也是从 1970 年 1 月 1 日开始计算。比如 java 类代码 Date date = new Date(0); System.out.println(date);打印出来的结果: Thu Jan 01 08:00:00 CST 1970也...
eclipse new date输出时间比系统时间晚8小时 解决方法
在eclipse中new出来的时间总是比系统时间晚了八个小时,原因主要有两个: 1、注册表出现异常。 注册表对应项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones 2、系统的时区设置错误。 可以导入下正常的注册表。 Time Zones_XP ...
Java中Date类型24小时制和12小时制
一般情况 DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");//定义格式 Date date = new Date(System.currentTimeMillis());//获取时间 String dateString = df.format(date);//进行转换 HH返回的
Java date 日期转换24小时制 失败
SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss", Locale.CHINA);rn String dateString = "18:50:36";rn Date timeDate = null;rn dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));rn dateFormat.setLenient(true);rn tryrn rn timeDate = dateFormat.parse(dateString);rn catch (ParseException e)rn rn timeDate = new Date();/* set to current time if anything is wrong */rn Log.e(Log_tag, "The date format string is failed to parse! time_ = " + time_);rn rnrn首先这个问题我已经在google上找了很久了,还是解决不掉,所以想请教大侠们:rn转换后的时间怎么会变成 6:50:36, 怎么不是24小时制的Date,
new Date() 输出的时间比系统晚了8个小时
在eclipse中new出来的时间总是比系统时间晚了八个小时,原因主要有两个: 1、注册表出现异常。 注册表对应项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones 2、系统的时区设置错误。 可以导入下正常的注册表。 Time Zones_XP ...
关于new Date()获取当前时间
在我们使用new Date() 想要获取当前时间时,但是格式不是我们想要的,比如格式为 年-月-日,可以使用如下方法: const date = new Date(); const current_date = date.getDate(); // 获取本 日 const current_month = date.getMonth() + 1; // 获取本 月 ...
new date的含义
今天开会的时候有人提出new date的时间是系统时间还是自然日时间.所以特此写了这篇博客,以便不知道的人了解一下.new date()的时间 底层是 System.currentTimeMillis()可以知道是获取系统的当前毫秒数,其实就是获取当前操作系统设置的时间,如果获取的时间跟操作系统的时间不一致,可能是jvm虚拟机设置的时区跟操作系统不一致导致的。进行设置之后应该就可以解决问题了。...
System.out.println(new Date());问题
System.out.println(new Date());rn在不同的机器上运行格式不同rn1) Wed Jan 30 08:53:41 GMT+08:00 2008rn2) Wed Jan 30 08:53:41 CST 2008rn想要例二的格式,如何解决 请高手赐教,谢谢!rn
new Date时间戳(练习)
定义时间戳:var date = new Date();              //Date 对象会自动把当前日期和时间保存为其初始值                           var time= date getTime()       //getTime() 方法可返回距 1970 年 1 月 1 日之间的毫秒数      //用时间戳来制作计时器的效果 /*
new Date()日期格式处理
 项目开发中遇到的格式问题: const strTime="2018-1-1 9:10:10"; const myDate new Date(strTime); const Y = myDate.getFullYear(); const M = myDate.getMonth()+1; const D = myDate.getDate(); const curDay = Y + '-'+ M ...
var testdate = new Date();
我在表单加了一个按钮,然后给onclick加了一个事件响应程序rnrndelItem();rnfunction delItem()rnrn var tdate = new Date();rnrnrn总是报错“对象不支持此属性和方法”rnrnrn请指教,谢谢!rnrn
相关热词 c# 去空格去转义符 c#用户登录窗体代码 c# 流 c# linux 可视化 c# mvc 返回图片 c# 像素空间 c# 日期 最后一天 c#字典序排序 c# 截屏取色 c#中的哪些属于托管机制