Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将时间设置为Gregorianalendar_Java_Gregorian Calendar - Fatal编程技术网

Java 将时间设置为Gregorianalendar

Java 将时间设置为Gregorianalendar,java,gregorian-calendar,Java,Gregorian Calendar,我有一个使用Gregorianalendar的任务调度程序, 我想把时间定在09:30:00 代码: 但当我从nextExecutionTime获得时间时,它返回了奇怪的值: Calendar.HOUR_OF_DAY 19 Calendar.MINUTE 44 Calendar.SECOND 27 避免遗留日期时间类 您正在使用可怕的日期时间类,这些类在几年前被java.time类取代 瞬间 将您的最后一次跑步记录为UTC中的瞬间 当地时间 指定一天中所需的时间 LocalTime lt =

我有一个使用Gregorianalendar的任务调度程序, 我想把时间定在09:30:00 代码:

但当我从nextExecutionTime获得时间时,它返回了奇怪的值:

Calendar.HOUR_OF_DAY 19
Calendar.MINUTE 44
Calendar.SECOND 27
避免遗留日期时间类 您正在使用可怕的日期时间类,这些类在几年前被java.time类取代

瞬间 将您的最后一次跑步记录为UTC中的瞬间

当地时间 指定一天中所需的时间

LocalTime lt = LocalTime.of( 9 , 30 ) ;
本地日期 获取今天的日期。这需要一个时区,因为在任何给定时刻,全球各地的日期都会因区域而异

ZoneId z = ZoneId.of( "America/Chicago" ) ;
LocalDate ld = LocalDate.now( z ) ;
分区截止时间 将这些部分组合成一个ZoneDateTime对象,确定时间轴上的一个特定时刻

ZonedDateTime zdt = ZonedDateTime.of( ld , lt , z ) ;
调整到UTC 提取一个瞬间,以调整到UTC

Instant instant = zdt.toInstant() ;
转换 如果需要使用遗留类与尚未更新为java.time的旧代码进行互操作,请转换。调用添加到旧类中的新转换方法。寻找到…和从…方法

您可以在和之间转换


nextExecutionTime.addCalendar.HOUR\u OF_DAY,9;-那么现在大约10点了吗?@ScaryWombat我不明白你加了9个小时,结果加了19个小时。。。与set非常不同…同意,但OP显然需要一个基于问题第一句的GregoriaCalendar。。。。也许任务调度器也非常有用old@CarlosHeuberger谢谢,修好了。我在底部添加了一个关于转换的部分。
Instant instant = zdt.toInstant() ;
GregorianCalendar gc =  GregorianCalendar.from( zdt ) ;