如何解码 Android 中的日期? - 日期时间戳
How to decode the date in Android? - DATETIMESTAMP
以下代码为我提供了 [2020-07-183 17:07:55.551] 的日期时间戳。问题在于 Datetimestamp 中的“Day”,它具有三位数字。如何将 currentTimeMillis
格式化为正确的日期格式?
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());
}
对我有用的解决方案:
请访问this link。
这适用于您支持 API 级别 26 的应用程序( 本机 支持 java.time
)或者您愿意/允许使用具有相同功能的 backport library。
然后你可以像这样使用正确/匹配的模式(考虑三位数天数的模式):
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日
你的日期格式不正确
dateFormat = new SimpleDateFormat("YYYY-MM-DD HH:MM:SS.SSS");
改成这个
dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:MM:SS.SSS");
以下代码为我提供了 [2020-07-183 17:07:55.551] 的日期时间戳。问题在于 Datetimestamp 中的“Day”,它具有三位数字。如何将 currentTimeMillis
格式化为正确的日期格式?
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());
}
对我有用的解决方案:
请访问this link。
这适用于您支持 API 级别 26 的应用程序( 本机 支持 java.time
)或者您愿意/允许使用具有相同功能的 backport library。
然后你可以像这样使用正确/匹配的模式(考虑三位数天数的模式):
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日
你的日期格式不正确
dateFormat = new SimpleDateFormat("YYYY-MM-DD HH:MM:SS.SSS");
改成这个
dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:MM:SS.SSS");