我以[2020-07-183 17:07:55.551]的形式获得Datetimestamp。 问题在Datetimestamp中带有“day”,它有三个值。 如何解码它的正确格式为天?
public String Datetimesetter(long currentTimeMillis, SimpleDateFormat dateFormat) {
dateFormat = new SimpleDateFormat("YYYY-MM-DD HH:MM:SS.SSS");
// Create a calendar object that will convert the date and time value in milliseconds to date.
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(currentTimeMillis);
return dateFormat.format(calendar.getTime());
}
日期格式不正确
dateFormat = new SimpleDateFormat("YYYY-MM-DD HH:MM:SS.SSS");
更改为此
dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:MM:SS.SSS");
这是为了支持API级别26的应用程序(java.time
),或者您愿意/允许使用具有相同功能的后端口库。
然后您可以使用正确的/匹配模式(一种考虑三位数天数的模式),如下所示:
public static void main(String[] args) {
// mock / receive the datetime string
String timestamp = "2020-07-183 17:07:55.551";
// create a formatter using a suitable pattern (NOTE the 3 Ds)
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-DDD HH:mm:ss.SSS");
// parse the String to a LocalDateTime using the formatter defined before
LocalDateTime ldt = LocalDateTime.parse(timestamp, dtf);
// and print its default String representation
System.out.println(ldt);
}
哪些产出
2020-07-01T17:07:55.551
所以我猜是一年中的某一天不是。 183年实际上是7月1日。
我知道DateFormatter是区分大小写的try
public String Datetimesetter(long currentTimeMillis, SimpleDateFormat dateFormat) {
dateFormat = new SimpleDateFormat("YYYY-MM-dd hh:mm:ss.SSS");
// Create a calendar object that will convert the date and time value in milliseconds to date.
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(currentTimeMillis);
return dateFormat.format(calendar.getTime());
}