datetime - 如何指定日期/时间偏移(以天为单位)

标签 datetime java-8 datetimeoffset

使用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/

相关文章:

java - 引用 lambda 表达式的最终字段

java - 了解下游减少实现

java - 如何将 OffsetTime 转换为本地 OffsetTime?

python - 在 Python 中遍历一系列日期

c# - 时区信息|GetUtcOffset : A better solution?

Java 8Optional.ofNullable.map产生非静态方法引用错误

c# - "semi-monthly"加多少天

c# - DateTime.Compare 如何检查日期是否小于 30 天?

python - 如何添加根据现有日期列和标准列计算的数据框日期列?

google-cloud-firestore - 云防火墙 : Storing and querying for today's date over multiple UTC offsets?