Dateformat 增加额外的 30 分钟时间
Dateformat adds extra 30 minutes to time
我正在使用此 Android 代码将毫秒转换为 mm:ss.SS 格式,但结果 dateformat 在日期中增加了 30 分钟。
Date date = new Date(millis);
DateFormat dateFormat= new SimpleDateFormat("mm:ss.SS", Locale.US);
best.add(dateFormat.format(date));\
实际上我想将毫秒转换为m:ss.SS 格式。还有其他最好的方法吗?
提前致谢。
设置TImezone
:
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
我猜...如果您生活在 GMT+30 分钟时区,除非您指定一个不同的时区,否则您的格式化程序将选择您当前的时区,因此它会将 0 小时视为 GMT 并且您在GMT+30 分钟,它输出 + 30 分钟...
要从用户当前位置获取时区,您可以使用:
TimeZone tz = TimeZone.getDefault();
System.out.println("TimeZone "+tz.getDisplayName(false, TimeZone.SHORT)+" Timezon id :: " +tz.getID());
然后你可以设置日期格式的时区。
它将 return 你的时区像“IST
”
您也可以尝试使用以下代码来查找时区的 GMT 偏移量:
public String getCurrentTimezoneOffset() {
TimeZone tz = TimeZone.getDefault();
Calendar cal = GregorianCalendar.getInstance(tz);
int offsetInMillis = tz.getOffset(cal.getTimeInMillis());
String offset = String.format("%02d:%02d", Math.abs(offsetInMillis / 3600000), Math.abs((offsetInMillis / 60000) % 60));
offset = "GMT"+(offsetInMillis >= 0 ? "+" : "-") + offset;
return offset;
}
它将return时区像:GMT+05:30这种格式
通过使用时区,您可以在所有设备中找到准确的时间..
另见:https://developer.android.com/reference/java/util/TimeZone.html
您可以将代码更改为:
DurationFormatUtils.formatDuration(millis, "mm:ss.SS");
我正在使用此 Android 代码将毫秒转换为 mm:ss.SS 格式,但结果 dateformat 在日期中增加了 30 分钟。
Date date = new Date(millis);
DateFormat dateFormat= new SimpleDateFormat("mm:ss.SS", Locale.US);
best.add(dateFormat.format(date));\
实际上我想将毫秒转换为m:ss.SS 格式。还有其他最好的方法吗?
提前致谢。
设置TImezone
:
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
我猜...如果您生活在 GMT+30 分钟时区,除非您指定一个不同的时区,否则您的格式化程序将选择您当前的时区,因此它会将 0 小时视为 GMT 并且您在GMT+30 分钟,它输出 + 30 分钟...
要从用户当前位置获取时区,您可以使用:
TimeZone tz = TimeZone.getDefault();
System.out.println("TimeZone "+tz.getDisplayName(false, TimeZone.SHORT)+" Timezon id :: " +tz.getID());
然后你可以设置日期格式的时区。
它将 return 你的时区像“IST
”
您也可以尝试使用以下代码来查找时区的 GMT 偏移量:
public String getCurrentTimezoneOffset() {
TimeZone tz = TimeZone.getDefault();
Calendar cal = GregorianCalendar.getInstance(tz);
int offsetInMillis = tz.getOffset(cal.getTimeInMillis());
String offset = String.format("%02d:%02d", Math.abs(offsetInMillis / 3600000), Math.abs((offsetInMillis / 60000) % 60));
offset = "GMT"+(offsetInMillis >= 0 ? "+" : "-") + offset;
return offset;
}
它将return时区像:GMT+05:30这种格式
通过使用时区,您可以在所有设备中找到准确的时间..
另见:https://developer.android.com/reference/java/util/TimeZone.html
您可以将代码更改为:
DurationFormatUtils.formatDuration(millis, "mm:ss.SS");