【发布时间】:2021-11-26 09:38:11
【问题描述】:
我想要每天中午 12 点的一个纪元。我试图制作一个函数来生成一串日期时间并且必须转换为一个纪元,但这不起作用,它还显示 12pm 到 0(零)我不知道为什么
这是我尝试过但显示错误的方法:
Calendar now = Calendar.getInstance();
int year = now.get(Calendar.YEAR);
int month=now.get(Calendar.MONTH)+1;
int date=now.get(Calendar.DATE);
String yearInString = String.valueOf(year);
String monthInString=String.valueOf(month);
if(monthInString.length()==1){
monthInString="0"+monthInString;
}
String dateInString=String.valueOf(date);
if(dateInString.length()==1){
dateInString="0"+dateInString;
}
int hour=now.get(Calendar.HOUR);
String hourInString=String.valueOf(hour);
int minute=now.get(Calendar.MINUTE);
String minuteInString=String.valueOf(minute);
if(minuteInString.length()==1){
minuteInString="0"+minuteInString;
}
int second=now.get(Calendar.SECOND);
String secondInString=String.valueOf(second);
String HRD=yearInString+"-"+monthInString+"-"+dateInString+" "+hourInString+":"+minuteInString+":"+secondInString;
System.out.println(HRD);
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-dd-MM HH:mm:ss.SSS");
LocalDateTime dt = LocalDateTime.parse(HRD, dtf);
Instant instant = dt.toInstant(ZoneOffset.UTC);
System.out.println(instant.toEpochMilli());
也试过了
Date date1 = dateFormat.parse(HRD);
long epoch = date1.getTime();
System.out.println(epoch);
但显示错误
线程“main”java.time.format.DateTimeParseException 中的异常:无法在索引 11 处解析文本“2021-10-06 0:29:43” 在 java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2052) 在 java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1954) 在 java.base/java.time.LocalDateTime.parse(LocalDateTime.java:494) 在 customepoch.main(customepoch.java:35)
【问题讨论】:
-
您是否尝试获取由本地时间(在您所在区域内)或 UTC 时间定义的时间段?
-
是的,你能帮我吗
-
是的,我的问题的哪一部分?
-
对不起,我需要本地时区
-
既然可以使用 java,time,现代 Java 日期和时间 API(
DateTimeFormatter、LocalDateTime、Instant和ZoneOffset),也不要涉及设计不佳和早已过时的Calendar类。 java.time 为您提供所需的所有功能。