我有一个字符串 - 20180915,格式为 yyyyMMdd 我需要得到这个日期的纪元毫秒数,20180915 的答案应该是 1537012800000
我能够使用以下函数做到这一点 -
import java.text.ParseException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
public static void main(String args[]) throws ParseException {
String myDate = "2018-09-15 12:00:00";
LocalDateTime localDateTime = LocalDateTime.parse(myDate,
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss") );
System.out.println(localDateTime);
long millis = localDateTime
.atZone(ZoneOffset.UTC)
.toInstant().toEpochMilli();
System.out.println(millis);
}
我面临的问题是—— 我将字符串作为“2018-09-15 12:00:00”传递,但我的输入是“20180915”。 我找不到将“20180915”转换为“2018-09-15 12:00:00”的好方法 我怎样才能做到这一点?
最佳答案
回答-
private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
public static Long getMillisForDate(String date) {
return LocalDateTime
.of(LocalDate.parse(date, formatter), LocalTime.NOON)
.atZone(ZoneOffset.UTC)
.toInstant().toEpochMilli();
}
关于java - 将字符串转换为纪元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52597426/