热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java显示不同时区_java–使用不同时区解析日期

即使在Java工作大约15年,人们总是会遇到处理日期和时间的问题……这是情况:我从一些外部系统获得一个时间戳作为字符串表示.时间戳的语义是它代表UTC日期.此时间戳必

即使在

Java工作大约15年,人们总是会遇到处理日期和时间的问题……

这是情况:我从一些外部系统获得一个时间戳作为字符串表示.时间戳的语义是它代表UTC日期.此时间戳必须放在一个实体中,然后放入TIMESTAMP字段中的PostgreSQL数据库中.另外,我需要将与本地时间相同的时间戳(在我的情况下为CEST)放入实体,然后在TIMESTAMP WITH TIME ZONE字段中放入数据库.

确保无论执行代码的机器设置是什么的正确方法是什么,时间戳都正确地存储在实体中(与其他UTC时间戳进行一些验证)和数据库中(以便稍后在报告中使用它们)上)?

这是代码,在我的本地机器上工作正常:

SimpleDateFormat sdfUTC = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");

sdfUTC.setTimeZone(TimeZone.getTimeZone("UTC"));

Date utcTimestamp = sdfUTC.parse(utcTimestampString);

// getMachinesTimezone is some internal util method giving the TimeZone object of the machines Location

Calendar localTimestamp = new GregorianCalendar(getMachinesTimezone());

localTimestamp.setTimeInMillis(utcTimestamp.getTime());

但是当在服务器上执行相同的代码时,会导致不同的时间,所以我认为这不是处理它的正确方法.有什么建议?

PS:我在这个论坛上搜索了Joda Time,但是在给定的项目中我不能引入新的库,因为我只改变现有的模块,所以我必须使用标准的JDK1.6



推荐阅读
author-avatar
Federer2012_554
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有