所有本地时间开始,Java的日期(日历)计算,每天在给定的日期时间
有一个艰难的一天在这一个办公室......我想锻炼一天的开始在当地时间,即午夜00:00:00,以任何日历日期为准。
考虑接下来的日子里,我想在当地时间午夜来计算一天的开始:
Time Start Day (Local) Start Day (GMT)
2011-03-27 00:00:00 GMT --> 2011-03-27 00:00:00 GMT --> 2011-03-27 00:00:00 GMT
2011-03-27 01:00:00 GMT --> 2011-03-27 00:00:00 GMT --> 2011-03-27 00:00:00 GMT
2011-03-27 02:00:00 GMT --> 2011-03-27 00:00:00 GMT --> 2011-03-27 00:00:00 GMT
2011-04-01 00:00:00 BST --> 2011-04-01 00:00:00 BST --> 2011-03-31 23:00:00 GMT
2011-10-30 00:00:00 BST --> 2011-10-30 00:00:00 BST --> 2011-10-29 23:00:00 GMT
2011-10-30 01:00:00 BST --> 2011-10-30 00:00:00 BST --> 2011-10-29 23:00:00 GMT
2011-10-30 01:00:00 GMT --> 2011-10-30 00:00:00 BST --> 2011-10-29 23:00:00 GMT
2011-11-01 00:00:00 GMT --> 2011-11-01 00:00:00 GMT --> 2011-11-01 00:00:00 GMT
目前,我使用的是SimpleDateFormat的解析字符串时间到一个GregorianCalendar。这给我的GMT/UTC时间来计算。
所以我有一些代码解析字符串转换成一个GregorianCalendar:
public GregorianCalendar getCalendar(String dateTime) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
GregorianCalendar cal = new GregorianCalendar();
cal.setTime(sdf.parse(dateTime, new ParsePosition(0)));
return cal;
}
现在我需要在本地设置为午夜:
public void setToStartOfDayLocally(GregorianCalendar cal) {
????
}
我也不太清楚我需要什么在日历上随时做。不幸的是,我们不会在不久的将来转向JODA的日期。我也没有用我的例子来解释不同的时区。
有什么想法?
感谢,
Andez