我正在尝试转换此日期对象 Fri Sep 21 08:00:00 SGT 2018
改成这种格式 yyyy-MM-dd hh:mm:ss
日期对象。
Date dt = sd1.parse(startTime);
logger.info(dt);
logger.info(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(dt.toString()));
第一个日志语句有效,它返回我 Fri Sep 21 08:00:00 SGT 2018
但第二条日志语句不起作用。
它给我一个错误
unparseable date Fri Sep 21 08:00:00 SGT 2018
我在这里做错了什么?我的最终目标是获取 yyyy-MM-dd hh:mm:ss
中的日期对象格式。
最佳答案
首先,您必须使用以下命令正确解析日期:
new SimpleDateFormat("EEE MMM dd hh:mm:ss zzz yyyy").parse("Fri Sep 21 08:00:00 SGT 2018");
所以这应该有效:
Date newDate = new SimpleDateFormat("EEE MMM dd hh:mm:ss zzz yyyy").parse("Fri Sep 21 08:00:00 SGT 2018");
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss.SS");
String strDate = sdf.format(newDate.getTime());
System.out.println(strDate);
但我建议您使用LocalDateTime
LocalDateTime ldt = LocalDateTime.parse("Fri Sep 21 08:00:00 SGT 2018", DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy"));
System.out.println(ldt.format(DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss.SS")));
关于java - 将日期对象转换为 yyyy-MM-dd hh :mm:ss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52440191/