我可以看到,格林尼治标准时间是Z常数,以指示它是格林尼治标准时间.但是,当我解析GMT字符串时,它仍在打印本地时间.

码:

SimpleDateFormat outFormat = new

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

String timeGMT = "2015-05-21T08:42:27.334Z";

try {

System.out.println("Time GMT>>>>>>"+outFormat.parse(timeGMT));

} catch (ParseException e) {

e.printStackTrace();

}

输出:

Thu May 21 08:42:27 IST 2015

预期:

Thu May 21 08:42:27 GMT 2015

解决方法:

这里有两个问题.

首先是您使用错误的格式进行解析.您的格式告诉解析器仅将Z视为没有意义的文字字符.

这意味着它将把它解析为本地日期,因为它不会将Z视为时区标记.如果希望将Z解释为时区,则格式中应包含X而不是“ Z”:

String timeGMT = "2015-05-21T08:42:27.334Z";

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

DateFormat f2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");

Date d1 = f1.parse(timeGMT);

Date d2 = f2.parse(timeGMT);

System.out.println(d1);

System.out.println(d2);

我目前在GMT 3中,这是我从中获得的输出:

Thu May 21 08:42:27 IDT 2015

Thu May 21 11:42:27 IDT 2015

如您所见,d2提前了3个小时,这意味着它按照GMT解释了原始时间.

另一个问题是您以默认格式打印结果日期.默认格式是您当地的时区,因此它将像在我所在的时区一样打印该格式.

要更改此设置,还必须格式化输出:

DateFormat f3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");

f3.setTimeZone(TimeZone.getTimeZone("GMT"));

System.out.println(f3.format(d2));

对于前面的示例,这将产生以下内容:

2015-05-21 08:42:27 GMT

标签:jodatime,simpledateformat,java

来源: https://codeday.me/bug/20191120/2042818.html

java时间为什么只显示到日_java-为什么此日期未在格林尼治标准时间显示?相关推荐

  1. 帆软报表如何实现开始时间-结束时间-时间间隔(时,日、周、月、年)分段显示数据

    帆软报表如何实现开始时间-结束时间-时间间隔(时,日.周.月.年)分段显示数据 1.效果展示 时间间隔:全部.时.日.周.月.年 按小时 按日 按周 按月 按年 如果这是你想要的,可以继续查看如何实现 ...

  2. java 时间是24小时制吗_java时间24小时制

    var minute = 1000 * 60 var hour = minute * 60 var day = hour * 24 例子:当前距1970-1-1多少天 java.util.Date d ...

  3. java显示行号_java开发文本编辑器手记之行号显示

    学java编程一段时间了,想利用java swing开发一个桌面的文本编辑器程序,首先想要实现的便是显示行号的功能,由于要实现一些关键词着色功能,选择了JTextPane,其实还有一个JEditorP ...

  4. Java时间工具类,获取日、周、旬、月、季度、半年、年等时间周期

    时间周期工具类,记录在这里方便以后使用,有需要的可以看看. 工具类如下: import java.text.ParseException; import java.text.SimpleDateFor ...

  5. java ftp 上传文件 进度条_java FTP上传文件(进度条显示进度)

    java实现FTP上传有2种方式,一种是org.apache.commons.net.ftp.FTPClient这个jar包,一种是sun.net.ftp.FtpClient.不知道为什么,在使用前一 ...

  6. java时间往后延后一年_java中时间类(util Date)的后延与前推处理

    当后延或者前推的天数在一定时间之内时,可以用以下方法处理 public static Date  getValidEndTime(Date date,int validDayCount){ Simpl ...

  7. java 一年中的第几天_Java计算某个日期是一年中的第几天

    比如2020年12月31日,是2020年的第366天.那么如何计算这个第几天呢? 首先当然是小学常识,给定的年份不是平年(一年365天),就是闰年(一年366天),平年1月到12月,每月分别有31, ...

  8. java怎么把毫秒转换成天数_Java 毫秒转换为日期类型、日期转换为毫秒

    //毫秒转换为日期 public static void main(String[] args) { DateFormat formatter = new SimpleDateFormat(" ...

  9. Java 时间类汇总

    Java 7 六个时间类 时间类的介绍与对比 类名称 时间格式 java.util.Date(父类) 年月日时分秒 java.sql.Date(子类) 年月日 java.sql.Time(子类) 时分 ...

  10. java获取当前时间年月_Java获取时间年、月、日的方法

    本文实例讲述了Java获取时间年.月.日的方法.分享给大家供大家参考.具体实现方法如下: package com.date.demo; import java.text.ParseException; ...

最新文章

  1. Git Merge VS Rebase
  2. hana-banach定理
  3. 《大数据》2015年第2期“专题”——我国大数据交易的主要问题及建议
  4. 让fedora满足你的日常办公和影音
  5. Xml解析之PULL解析 例2
  6. 公司内网与外网连通中的一些小问题(达内)
  7. python深度学习机器学习必备的学习网站集合!
  8. android微信红包提醒,微信红包提醒怎么设置 微信红包提醒设置教程
  9. 大数据可视化工具-大屏展示
  10. liunx下创建达梦数据库实例以及删除实例步骤
  11. html页面设计扁平化,50个漂亮的扁平化网页设计欣赏
  12. 戴尔服务器板载系统raid管理,如何在 Dell 系统的统一可扩展固件接口(UEFI)配置中管理您的板载 LSI 3008 RAID 控制器...
  13. python外汇兑换代码_Python爬取中国银行外汇牌价
  14. 《现代操作系统》阅读笔记
  15. Excel如何使用DATE函数
  16. Joint Extraction of Entities and Relations Based on a Novel Tagging Scheme
  17. win11如何快速关机 windows11快捷键关机的设置方法
  18. 2020面试要点大全
  19. 《算法竞赛入门经典(第2版)》——学习记录
  20. 解决html页面中文乱码

热门文章

  1. 安装了vmWare15,打开虚拟机时,电脑总是重启,怎么办?
  2. 支付宝支付原理以及测试接口获取支付url
  3. java中linechart用法_Line Chart
  4. 超难打地鼠 【安卓游戏】
  5. 中长焦投影仪买哪款好,当贝X3高流明热销你值得看
  6. 使用selenium爬取艺恩网年度票房(8.16)
  7. 阿兹尔海默症生物标志物(姑且叫标志物)的一些总结
  8. jQuery实现表格行的动态增加与删除(改进版)
  9. 阿里20周年升级价值观:新六脉神剑与它的变革时代
  10. 我的世界java版骨头指令_我的世界:如何调出“啃骨头”隐藏皮肤?1个没人知道的mc彩蛋...