当前位置: 首页>>代码示例>>用法及示例精选>>正文


Java ZonedDateTime minusHours()用法及代码示例

minusHours()ZonedDateTime类的方法,用于从此ZonedDateTime中减去小时数,并在减去后返回ZonedDateTime的副本。此操作在即时时间轴上进行,因此减去一小时始终是一小时。减去一小时可能会导致本地日期时间的变化量不是一小时。
例如,考虑一个时区,例如“欧洲/巴黎”,秋季DST切换意味着本地时间02:00到02:59发生两次,从夏令时的+02:00更改为+01:00在冬季。

  • 从03:30 + 01:00减去一小时将得出02:30 + 01:00(均为冬季)
  • 从02:30 + 01:00减去一小时将得出02:30 + 02:00(从冬季移至夏季)
  • 从02:30 + 02:00减去一小时将得出01:30 + 02:00(均为夏令时)
  • 从03:30 + 01:00减去三个小时将得出01:30 + 02:00(从冬季移至夏季)

此实例是不可变的,不受此方法调用的影响。

用法:


public ZonedDateTime minusHours(long hours)

参数:此方法接受单个参数小时,该小时代表要减去的小时,可以为负。

返回值:此方法基于此日期时间并减去小时数,返回ZonedDateTime。

异常:如果结果超出支持的日期范围,则此方法将引发DateTimeException。

以下示例程序旨在说明minusHours()方法:
示例1:

// Java program to demonstrate 
// ZonedDateTime.minusHours() method 
  
import java.time.*; 
  
public class GFG { 
    public static void main(String[] args) 
    { 
  
        // create a ZonedDateTime object 
        ZonedDateTime zoneddatetime 
            = ZonedDateTime.parse( 
                "2018-12-06T19:21:12.123+05:30[Asia/Calcutta]"); 
  
        // print instance 
        System.out.println("ZonedDateTime before"
                           + " subtracting hours: "
                           + zoneddatetime); 
  
        // subtract 3 hours 
        ZonedDateTime returnvalue 
            = zoneddatetime.minusHours(3); 
  
        // print result 
        System.out.println("ZonedDateTime after "
                           + " subtracting 3 hours: "
                           + returnvalue); 
    } 
}
输出:

ZonedDateTime before subtracting hours: 2018-12-06T19:21:12.123+05:30[Asia/Calcutta]
ZonedDateTime after subtracting 3 hours: 2018-12-06T16:21:12.123+05:30[Asia/Calcutta]

示例2:

// Java program to demonstrate 
// ZonedDateTime.minusHours() method 
  
import java.time.*; 
  
public class GFG { 
    public static void main(String[] args) 
    { 
  
        // create a ZonedDateTime object 
        ZonedDateTime zoneddatetime 
            = ZonedDateTime.parse( 
                "2018-10-25T23:12:31.123+02:00[Europe/Paris]"); 
  
        // print instance 
        System.out.println("ZonedDateTime before"
                           + " subtracting hours: "
                           + zoneddatetime); 
  
        // subtract 20 hours 
        ZonedDateTime returnvalue 
            = zoneddatetime.minusHours(20); 
  
        // print result 
        System.out.println("ZonedDateTime after "
                           + " subtracting 20 hours: "
                           + returnvalue); 
    } 
}
输出:

ZonedDateTime before subtracting hours: 2018-10-25T23:12:31.123+02:00[Europe/Paris]
ZonedDateTime after subtracting 20 hours: 2018-10-25T03:12:31.123+02:00[Europe/Paris]

参考: https://docs.oracle.com/javase/10/docs/api/java/time/ZonedDateTime.html#minusHours(long)



相关用法

注:本文由纯净天空筛选整理自AmanSingh2210大神的英文原创作品 ZonedDateTime minusHours() method in Java with Examples。非经特殊声明,原始代码版权归原作者所有,本译文的传播和使用请遵循“署名-相同方式共享 4.0 国际 (CC BY-SA 4.0)”协议。