【发布时间】:2018-05-08 10:35:55
【问题描述】:
我有日期像字符串200901
在 android 设备上,我将其转换为日期:
private static final SimpleDateFormat CARD_DATE_FORMAT = new SimpleDateFormat("yyMMdd", Locale.getDefault());
public static Date toCardDateFormat(String date) {
try {
return CARD_DATE_FORMAT.parse(date);
} catch (ParseException e) {
return null;
}
}
我得到日期:Tue Sep 01 00:00:00 GMT+07:00 2020
之后,我将此日期传递给 spring 控制器,在控制器方法中,我的日期如下:Mon Aug 31 20:00:00 GMT+03:00 2020
【问题讨论】:
-
如何将
date传递回Spring 控制器? -
我建议你避免使用
SimpleDateFormat类。它不仅与Date一起已经过时,而且还出了名的麻烦。今天我们在java.time, the modern Java date and time API 中做得更好。顺便说一句,Date没有时区。不能有。 -
固溶是使用
LocalDatefromjava.time。这是没有时间和时区的日期。没有混淆的余地。 :-) -
对于早期的 Android,您应该使用适应 ThreeTen-Backport 项目的 ThreeTenABP 项目。永远不要使用最初与 Java 的最早版本捆绑在一起的非常麻烦的遗留日期时间类。
标签: java date simpledateformat