- 此问题在此处已有答案**:
What is this date format? 2011-08-12T20:17:46.384Z(11个答案)
昨天关门了。
任何帮助或提示将不胜感激。从下面的代码我得到这个日期:2023 - 01 - 25 16:30:22.998。我怎样才能得到这个日期:"frmdt":"2023 - 01 - 16t23:59:59. 938z"。它有一个"t",我不知道这是什么意思?
java.util.Date tsFrom = new java.util.Date();
Calendar calFrom = Calendar.getInstance();
calFrom.setTime(tsFrom);
calFrom.add(Calendar.YEAR, -1);
tsFrom.setTime(calFrom.getTime().getTime()); // or
sqlTSFromDate = new Timestamp(calFrom.getTime().getTime());
System.out.println("From date:" + sqlTSFromDate);
2条答案
按热度按时间68de4m5k1#
TL;医生
2022年1月27日星期二02:02:36.985475Z
ISO 8601标准
学习用文本表示日期时间值的ISO 8601标准格式。
避免遗留类
永远不要使用遗留类
Date
、Calendar
、Timestamp
,它们有严重的缺陷,是由不了解日期时间处理的人设计的。* Java时间 *
相反,使用JSR 310中定义的 * java. time * 类。
显然,您希望比UTC中看到的当前时刻早一年。
捕获UTC中的当前时刻。
现在. toString():2023年1月27日星期二02:02:36.985475Z
使用UTC中偏移量为零的日历日期返回一年。首先定义返回的时间量,使用
Period
表示年-月-日的刻度。然后相减。
然后. toString():2022年1月27日星期二02:02:36.985475Z
看那个code run at Ideone.com。
要生成标准ISO 8601格式的文本,只需调用
toString
。* java. time * 类在生成/解析文本时默认使用ISO 8601格式。2022年1月27日星期二02:02:36.985475Z
T
将年-月-日部分与时-分-秒部分分开。Z
表示相对于UTC的零小时-分钟-秒的偏移量。oknwwptz2#
正如一些评论所说,这是一个ISO 8601日期。在Java中,你可以使用SimpleDateFormat解析或编写。最后有Z,确保使用UTC/祖鲁时间。
修改您的代码: