【发布时间】:2012-08-21 09:46:16
【问题描述】:
我需要在给定年份的每一天的每一小时都在命令行上获取/打印,例如2011 年,但我正在努力用 Java 编写代码。
有人编码过这个问题吗?
【问题讨论】:
-
也可能与时区有关。
-
是的。 ;) 有什么更具体的你想知道的吗?
我需要在给定年份的每一天的每一小时都在命令行上获取/打印,例如2011 年,但我正在努力用 Java 编写代码。
有人编码过这个问题吗?
【问题讨论】:
这应该可行:
final DateFormat df = DateFormat.getDateTimeInstance();
final Calendar c = Calendar.getInstance();
c.clear();
for (c.set(2011, Calendar.JANUARY, 1, 0, 0, 0);
c.get(Calendar.YEAR) == 2011;
c.add(Calendar.HOUR_OF_DAY, 1))
System.out.println(df.format(c.getTime()));
例如,请注意输出中的这种微妙之处:
Oct 30, 2011 12:00:00 AM
Oct 30, 2011 1:00:00 AM
Oct 30, 2011 2:00:00 AM
Oct 30, 2011 2:00:00 AM
Oct 30, 2011 3:00:00 AM
【讨论】:
您可以使用 joda-time 库轻松解决此问题:
org.joda.time.Hours.hoursBetween(
new org.joda.time.DateMidnight(2012,1,1).toLocalDate(),
new org.joda.time.DateMidnight(2013,1,1).toLocalDate()
).getHours();
【讨论】:
使用日历,日复一日地循环以根据需要的参数管理“引用的字符串”,
你可以把每一行day(通常用逗号分隔)放在一个文件中
【讨论】: