将这种格式的时间 20210526T150239 转换为这种格式 2021-05-26T12:56:21.826
Convert time in this format 20210526T150239 to this format 2021-05-26T12:56:21.826
我有一个传入的字符串,格式为“20210526T150239”,双引号表示这是字符串。
如何将其转换成这种格式 2021-05-06T12:56:21.826?
2021-05-26T12:56:21.826中的T值后是不是正好等于150239?但很明显,我希望以这样的方式更改格式:然后是小时值:然后是分钟值:然后是第二个值。然后是毫秒。
如何将 Java 中的格式从 20210526T150239 更改为这种格式 2021-05-06T12:56:21.826?
我试过这样的东西
long unixSeconds = Long.parseLong(incomingTimeStamp);
Date date = new Date(unixSeconds * 1000L);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
incomingTimeStamp = sdf.format(date)
但是字符串中的T出问题了,乘以1000L不能转换为Long。如何在 Java 中完成?
你的问题有问题。
您没有在 Date String 中传递毫秒信息,但期望这应该是您输出日期的一部分,这是不可能的。
无论如何这是我的解决方案:
String dateStr = "20210526T150239";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd'T'HHmmss");
LocalDateTime outputDate = LocalDateTime.parse(dateStr ,formatter);
如果您的输入日期包含毫秒信息,如 20210526T150239867,您可以相应地更改日期模式,如 DateTimeFormatter.ofPattern("yyyyMMdd'T'HHmmssSSS")
并解析为 LocalDateTime
。
我有一个传入的字符串,格式为“20210526T150239”,双引号表示这是字符串。
如何将其转换成这种格式 2021-05-06T12:56:21.826?
2021-05-26T12:56:21.826中的T值后是不是正好等于150239?但很明显,我希望以这样的方式更改格式:然后是小时值:然后是分钟值:然后是第二个值。然后是毫秒。
如何将 Java 中的格式从 20210526T150239 更改为这种格式 2021-05-06T12:56:21.826?
我试过这样的东西
long unixSeconds = Long.parseLong(incomingTimeStamp);
Date date = new Date(unixSeconds * 1000L);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
incomingTimeStamp = sdf.format(date)
但是字符串中的T出问题了,乘以1000L不能转换为Long。如何在 Java 中完成?
你的问题有问题。 您没有在 Date String 中传递毫秒信息,但期望这应该是您输出日期的一部分,这是不可能的。
无论如何这是我的解决方案:
String dateStr = "20210526T150239";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd'T'HHmmss");
LocalDateTime outputDate = LocalDateTime.parse(dateStr ,formatter);
如果您的输入日期包含毫秒信息,如 20210526T150239867,您可以相应地更改日期模式,如 DateTimeFormatter.ofPattern("yyyyMMdd'T'HHmmssSSS")
并解析为 LocalDateTime
。