使用Java的日期解析机制,我想指定一个日期/时间以及以天为单位的偏移量。基本上类似于时区偏移。
示例:
- 昨天:午夜零 1 天
- 前天:午夜减 2 天
- 前天中午:午夜减1天 12小时
- 从 1 周前开始:午夜减 1 周
这可能吗?如何实现?
最佳答案
我认为在解析时这是不可能的。但是,在将其解析为 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 结合应用。类(class)。示例:
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
关于datetime - 如何指定日期/时间偏移(以天为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49788767/