Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java字符串到日期不带时区_Java_Date_Simpledateformat - Fatal编程技术网

Java字符串到日期不带时区

Java字符串到日期不带时区,java,date,simpledateformat,Java,Date,Simpledateformat,我有类似字符串的日期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

我有类似字符串的日期
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;
        }
    }
我得到日期:
9月1日星期二00:00:00 GMT+2020年7:00


之后,我将此日期传递给spring controller,在controllers方法中,我将此日期设置为:
Mon Aug 31 20:00:00 GMT+03:00 2020
您正在默认时区中解析日期,这将取决于为设备配置的时区,但它似乎是
GMT+7

运行Spring的服务器似乎位于
GMT+3
时区,当它以默认时区打印日期时,它使用的就是这个时区

2020-09-01T00:00:00+07:00
2020-08-31T20:00:00+03:00
表示的实际瞬间是相同的


整个查询是由两台不同的计算机在同一时刻打印其本地时区中格式化的日期而产生的。

如何将
日期
传递回Spring控制器?我建议您避免使用
SimpleDataFormat
类。它不仅与
日期一起过时很长时间,而且还出了名的麻烦。今天我们的生活好多了。顺便说一句,日期没有时区。不能有。解决方案是使用
java.time
中的
LocalDate
。这是一个没有时间和时区的日期。没有混淆的余地。:-)对于早期的Android,您应该使用ThreeTenABP项目,该项目适应ThreeTen Backport项目。永远不要使用最早的Java版本中最麻烦的遗留日期时间类。