可能会有简单而快速的答案,但我仍然无法找出为什么是
Date date = new Date(60000); //one min.
SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
String dateStr = dateFormat.format(date);
dateStr - 01:01:00 还有一小时。时区?没有它我该如何设置?谢谢。
Date
代表一个特定的时刻,而不是持续时间。new Date(60000)
不会创造“一分钟”。请参阅该构造函数的文档:
使用指定的毫秒值初始化此 Date 实例。该值是自 1970 年 1 月 1 日 GMT 以来的毫秒数。
如果您想要“从现在开始一分钟”,您可能希望使用Calendar
该类,特别是该add
方法。
更新:
DateUtils
有一些您可能会觉得有用的有用方法。如果您想要 HH:mm:ss 格式的经过时间,您可以尝试DateUtils.formatElapsedTime
. 就像是:
String dateStr = DateUtils.formatElapsedTime(60);
请注意,60 以秒为单位。
java.util.Date
指定一分钟的三种方法:
1. 使用 SimpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"))
shahtapa说:
Date date = new Date(60*1000); //one min.
SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
String dateStr = dateFormat.format(date);
System.out.println("Result = " + dateStr); //Result should be 00:01:00
2. 使用 java.util.Calendar
as kabuko说:
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.MINUTE,1); //one min.
Date date = calendar.getTime();
SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
String dateStr = dateFormat.format(date);
System.out.println("Result = " + dateStr); //Result should be 00:01:00
calendar.set()
也可以使用其他语句:
calendar.set(Calendar.MILLISECOND,60*1000); //one min.
calendar.set(1970,0,1,0,1,0); //one min.
3.正如西蒙尼克森所说,使用这些setTimeZone
和 Calendar
想法并强制 Calendar
使用
UTC 时区:
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
calendar.clear();
calendar.set(Calendar.MINUTE,1); //one min.
Date date = calendar.getTime();
SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
String dateStr = dateFormat.format(date);
System.out.println("Result = " + dateStr); //Result should be 00:01:00
注意:
我有一个类似的问题:1970-01-01
在我的情况下,日期是-3 600 000
毫秒(迟到 1 小时)
java.util.Date(70,0,1).getTime() -> -3600000
我建议使用 TimeUnit
“TimeUnit 表示给定粒度单位的持续时间,并提供跨单位转换的实用方法,并在这些单位中执行计时和延迟操作。TimeUnit 不维护时间信息,而仅帮助组织和使用可能的时间表示在不同的上下文中单独维护。纳秒定义为千分之一微秒,微秒定义为千分之一毫秒,毫秒定义为千分之一秒,一分钟定义为六十秒,一小时定义为六十分钟,以及一天二十四小时。”
http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/TimeUnit.html
Date date = new Date(); // getting actual date
date = new Date (d.getTime() + TimeUnit.MINUTES.toMillis(1)); // adding one minute to the date