相关疑难解决方法(0)

用Joda和时区解析约会

我有两个时间戳,以两种不同的格式描述相同的时刻.

2010-10-03 18:58:072010-10-03T16:58:07.000+02:00.

我使用Joda-Time解析时间戳和两个不同的日期格式化程序.最后,我希望有两个DateTime对象,它们在同一时刻是相等的.

DateFormatter提供了几种控制时区和语言环境的方法,但我无法使其工作.

这是我想要的代码:

    final String date1 = "2010-10-03 18:58:07"; // Europe/Berlin local time
    final DateTimeFormatter formatter1 = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
    final DateTime dateTime1 = formatter1.parseDateTime(date1);

    final String date2 = "2010-10-03T16:58:07.000+02:00"; // Europe/Berlin local time with time zone
    final DateTimeFormatter formatter2 = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
    final DateTime dateTime2 = formatter2.parseDateTime(date2);

    Assert.assertTrue(dateTime1.isEqual(dateTime2));
Run Code Online (Sandbox Code Playgroud)

java timezone datetime date jodatime

14
推荐指数
1
解决办法
2万
查看次数

在一定时间内执行Java程序

我有一个要求,我需要在工作日的上午9点到下午5点之间运行Java程序。时区将始终为UTC。该程序应从上午9点开始,并应在下午5点之前结束。如果无法在下午5点之前完成,则应睡到第二天08:59:59。如果第二天是周末,那么应该从星期一开始。

使用Joda时间的两个日期之间以秒为单位的文章差异?解释了如何获取两个预定义日期之间的秒差,但是我一直想计算下一个工作日上午9点与当前时间之间的差。

我正在考虑通过计算两个日期之间的时间差来使用Thread.sleep()。是否有一个Joda Time API,可以用来计算两个日期之间的时差?

我已经尝试获取当前工作日和第二天上午9点(如果它是工作日),计算这两个纪元之间的差,并将该值用于Thread.sleep,但这有点混乱。

以下是我使用的伪代码

getNextDayEpoch函数包含if / else代码,使用确定日期是工作日/周末java确定是工作日还是周末

根据是工作日还是周末,我得到相应的纪元值。

currentEpoch = getCurrentEpoch()
nextDayEpoch = getNextDayEpoch()

difference = nextDayEpoch - currentDayEpoch

try {
    Thread.sleep(difference);
} catch (InterruptedException e) {
    e.printStackTrace();
}

Run Code Online (Sandbox Code Playgroud)

您能提出更好的建议吗?

java jodatime

0
推荐指数
1
解决办法
55
查看次数

标签 统计

java ×2

jodatime ×2

date ×1

datetime ×1

timezone ×1