如何以天为单位指定日期/时间偏移量

时间:2018-04-12 05:37:01

标签: datetime java-8 datetimeoffset

使用Java的日期解析机制我想指定一个以天为单位的偏移量的日期/时间。基本上类似于时区偏移。

示例:

  • 昨天:午夜减去1天
  • 前天:午夜减去2天
  • 前天中午:午夜减去1天减去 12小时
  • 1周前开始:午夜减去1周

这可能吗?怎么样?

1 个答案:

答案 0 :(得分:3)

我认为解析时不可能。但仍然可以在将Java8解析为LocalDateTime对象之后在Java8中进行日期时间操作,

System.out.println("Tomorrow: " + LocalDateTime.now().plusDays(1));
System.out.println("Yesterday: " + LocalDateTime.now().minusDays(1));
System.out.println("One week ago: " + LocalDateTime.now().minusWeeks(1));

您可以结合Duration课程应用日期和时间修改。例如:

DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME;
LocalDateTime now = LocalDateTime.now();
Duration duration = Duration.parse( "-P1DT15M");

System.out.println( "Duration   : " + duration.toMillis());
System.out.println( "Now        : " + formatter.format( now));
System.out.println( "Now-P1DT15M: " + formatter.format( duration.addTo(now)));

结果

Duration   : -87300000
Now        : 2018-04-12T08:59:10.91
Now-P1DT15M: 2018-04-11T08:44:10.91