4

有没有办法将时间和日期变量转换为日期时间?

我在两个 DateTime 变量之间有一个周期,对于该周期中的每个日期,我想在该日期中存储一个带有开始 DateTime 和结束 DateTime 的周期,因此一天可以有多个由 DateTime 定义的周期。

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

提前致谢!

4

6 回答 6

10

普通的 javaDateJoda-Time DateTime应该可以达到目的。

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 的更多信息。

如果您有两个String对象,其中 1 包含Date和另一个Time,您可以组合 2 个字符串并使用SDF对其进行解析并获取Date对象,然后您可以将其转换为DateTime.

于 2013-03-07T15:55:35.980 回答
5

使用此修复它:

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;
}
于 2013-03-11T11:34:08.540 回答
3

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

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());
}
于 2016-04-26T10:27:53.013 回答
2

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

但是,在 datetime 对象本身上,您可以指定以下内容。

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

希望这可以帮助!

于 2013-03-07T16:09:11.953 回答
1

java.time

使用现代 Java 日期和时间 API java.time,这非常简单明了:

    LocalTime time = LocalTime.of(23, 45);
    LocalDate date = LocalDate.of(2019, Month.NOVEMBER, 23);

    LocalDateTime combined = date.atTime(time);
    System.out.println(combined);

输出是:

2019-11-23T23:45

我知道你问过 Joda-Time。然而,Joda-Time 主页说:

请注意,Joda-Time 被认为是一个基本上“完成”的项目。没有计划进行重大改进。如果使用 Java SE 8,请迁移到java.time(JSR-310)。

链接

于 2019-07-16T19:40:48.963 回答
0
DateTime dateTime = new DateTime("yyyy-MM-dd");.

System.out.println("============> " + dateTime.toString());

输入:2018-01-04
输出:=============> 2018-01-05T00:00:00.000+05:30

于 2019-07-16T05:10:37.217 回答