从数据库获取日期时间
如何从数据库获取日期时间的问题已经被提及过数百次。请搜索StackOverflow,并关注java.sql.Timestamp
。
为了回答您所提问题标题的主题,请继续阅读。
Joda-Time
如果使用Joda-Time或随Java 8捆绑的java.time包(受Joda-Time启发),将会更加简单。与Java捆绑的java.util.Date和.Calendar类具有臭名昭著的问题,令人困惑和缺陷较多。
时区非常重要。与java.util.Date不同,Joda-Time和java.time均向其日期时间对象分配时区。
以下是一些示例代码,展示了在Joda-Time 2.5 DateTime对象上设置时间的多种方式。
DateTimeZone zoneMontreal = DateTimeZone.forID( "America/Montreal" );
DateTime nowMontreal = DateTime.now( zoneMontreal );
DateTime startOfDayMontreal = nowMontreal.withTimeAtStartOfDay();
DateTime fourHoursAfterStartOfDayMontreal = startOfDayMontreal.plusHours( 4 );
DateTime todayAtThreeInAfternoon = nowMontreal.withTime(15, 0, 0, 0);
转换
如果你绝对需要一个java.util.Date对象,可以从Joda-Time进行转换。
java.util.Date date = startOfDayMontreal.toDate()
要从j.u.Date转换为Joda-Time,将Date对象传递给Joda-Time DateTime的构造函数。