2013-03-07 228 views
1

是否有方法将时间和日期变量转换为日期时间?乔达:将日期和时间转换为日期时间

我有一段时间介于两个日期时间变量之间,对于那个时期的每个日期,我想在该日期中存储一个句点,开始日期时间和结束日期时间,所以一天可以有多个日期时间定义的日期。

似乎无法弄清楚如何将日期和时间结合到日期时间。

在此先感谢!

+1

什么*究竟*你的意思是“时间和日期变量”?如果您向我们展示代码而不是描述它,那将会容易得多。 – 2013-03-07 15:56:34

+0

java.sql.Time beginTime和java.sql.Date beginDate,我想从它们中构建一个dateTime – Luc 2013-03-08 08:41:30

+0

Luc - 给我们一个你想要做什么的例子。使事情更清楚。 – 2013-03-10 18:22:25

回答

2

使用这个固定:

public DateTime dateAndTimeToDateTime(java.sql.Date date, java.sql.Time time) { 
    String myDate = date + " " + time; 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    java.util.Date utilDate = new java.util.Date(); 
    try { 
     utilDate = sdf.parse(myDate); 
    } catch (ParseException pe){ 
     pe.printStackTrace(); 
    } 
    DateTime dateTime = new DateTime(utilDate); 

    return dateTime; 
} 
3

普通的Java DateJoda-TimeDateTime应该服务宗旨。

Date date = new Date(); // java.util.Date; - This date has both the date and time in it already. 
DateTime dateTime = new DateTime(date); 

关于Joda-Time的更多info

如果你有两个String对象,其中1具有Date和其他Time,你可以结合两个字符串,并使用SDF分析它,并得到Date对象,然后你就可以转换为DateTime

+1

关于最后一段...如果你在该日期和时间([标准格式](https://en.wikipedia.org/wiki/ISO_8601))之间包含一个“T”,您可以直接将该字符串传递给[DateTime]的构造函数(http:// www.joda.org/joda-time/apidocs/org/joda/time/DateTime.html)。无需使用SimpleDateFormat和Date类。只需一行代码。像这样...'DateTime dateTime = new DateTime(“2013-01-02T03:04:05”,DateTimeZone.UTC);' – 2013-12-30 23:25:50

2

我很肯定你可以找到如何分别构建日期和时间实例。

但是,在日期时间对象本身,您可以指定以下内容。

dateTimeObject = dateTimeObject.withHourOfDay(12); 
dateTimeObject = dateTimeObject.withMinuteofHour(59); 
dateTimeObject = dateTimeObject.withSecondOfMinute(59); 

希望这有助于!

2

即使这个问题是有点老,已经回答了,我无法找到一个令人满意的解决方案。对于这个问题最好的方法可能是下面的代码(不需要任何解析和异常处理):

public DateTime dateAndTimeToDateTime(java.sql.Date date, java.sql.Time time) { 
    DateTime t = new DateTime(time); 
    return new DateTime(date).withTime(t.getHourOfDay(), t.getMinuteOfHour(), t.getSecondOfMinute(), t.getMillisOfSecond()); 
} 
相关问题