我将teformat构造函数简化为
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
我正在解析字符串“2013-09-29T18:46:19Z”。
我读到这里Z代表GMT/UTC
时区。但是当我在控制台上打印这个日期时,它会为返回的日期打印IST timezne。
现在我的问题是我的输出是对还是错?
从ISO 8601字符串到Java日期对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
sdf.parse("2013-09-29T18:46:19Z"); //prints-> Mon Sep 30 02:46:19 CST 2013
如果不设置TimeZone.getTimeZone(“GMT”)
,则它将输出Sun Sep 29 18:46:19 CST 2013
从Java日期对象到ISO 8601字符串
要将Date对象转换为ISO 8601 Standard(yyyyy-MM-dd'T'HH: mm: ss'Z'
),请使用以下代码
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US);
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(sdf.format(new Date())); //-prints-> 2015-01-22T03:23:26Z
还要注意的是,在Zyyyy-MM-dd'T'HH:MM:ssZ处没有
”
打印2015-01-22T03:41:02 0000
'T'
和'Z'
在这里被认为是常量。您需要传递不带引号的Z
。此外,您需要在输入字符串中指定时区。
示例:2013-09-29T18:46:19-0700
格式为"yyyy-MM-dd'T'HH: mm: ssZ"
您没有设置时区,只是在日期/时间的末尾添加了一个Z
,因此它看起来像GMT日期/时间,但这不会更改值。
将时区设置为GMT,它将是正确的。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
我有SimpleDateFormat构造函数作为
问题内容: 我有一个格式。我希望它采用以下格式 以下是我尝试进行此转换的示例: 我得到的输出仍然不是格式。 请让我知道如何格式化从到 问题答案: 是自Unix纪元(1970年1月1日UTC:00:00)以来的毫秒数的容器。 它没有格式的概念。 输出…
我想将日期从07/02/2019转换为2019年7月07日。我的输入值是07/02/2019我想与目标值2019年7月07日进行比较.....请帮助我... public static void main(string[]args)引发ParseException{ 输出:Mon Jul 01 00:00:00 IST 2019这不是我的期望值
问题内容: 有人可以让我知道吗,如何在Java 中将日期格式转换为日期, 在输入和输出日期中都应为Strings。 我用过apache,但是在输出中没有毫秒数。 问题答案: 您还可以在Java 8中使用更新的Time API ,类似… 哪个输出… 这使您对管理时区负有更多责任,通常这可能是一个更好的解决方案 而且因为在Java 8 API中的时区之间进行转换使我很头疼(缺乏经验:P) 哪个输出…
我在将日历对象转换为可读字符串时遇到了一个大问题。 实际上,我使用df.format(cal.getTime())来获取格式化的字符串,这不是很好,因为我从cal.getTime()获取的Date对象不受时区的影响。 请回绝任何评论,如“使用joda时间”。。。 我正在寻找一种将日历对象直接转换为字符串的解决方案。 这些是我的格式化程序: 如果你们尝试一下这段代码,你会发现Date对象不受时区的影
问题内容: 好吧,我正在使用a进行详细说明,因为我从数据库中获取了一个对象,并且从同一对象中获得了一个变量“ fecha”(日期),因此我得到了a ,因此formatt以毫秒为单位,但是我不想出现毫秒。因此,我需要将我从数据库中收到的日期格式化为没有毫秒的新日期。 这是对象Factura: 在映射到数据库的xml中,我具有该变量“ fecha”的代码: 在数据库中,该列为。 当我从数据库中获取一个