有一个带有特定格式的日期和时间的字符串
String date = "Tue Sep 11 08:28:59 EDT 2018";
在我想得到的输出
11.09.2018 08:28
但我越来越
10.09.2018 15:28
格式
"EEE MMM d HH:mm:ss z yyyy"
我想解析日期并以不同的格式显示
"dd.MM.yyyy HH:mm"
我的实现:
public static String getTime(String time, String inFormat, String outFormat) throws ParseException {
Date date = new Date();
SimpleDateFormat simpleFormet = new SimpleDateFormat(inFormat);
SimpleDateFormat simpleFormet2 = new SimpleDateFormat(outFormat);
date = simpleFormet.parse(time)
return simpleFormet2.format(date);
}
问题是时间总是重置为当前时间,告诉我如何正确操作。
为了使日期和时间与原来相同,您需要获取
z原始字符串中的值。这可以通过多种方式完成,包括使用Joda DateTime。诀窍是您的时间是
Tue Sep 11 08:28:59 EDT 2018针对时区给出的EDT,即 UTC-4,对象Date存储格林威治标准时间。因此,该行并且比传输的时间多 4 小时(而不是当前时间)。
Java8 有一个用于处理时间的新库
java.time。它有一个LocalDateTime存储日期和时区的类。用法: