我正在尝试获取当前日期和时间,并创建一个包含当前时间/日期和下一个小时的集合,等等。
我是Java的初学者,面临两个问题。输出是:
10月23日星期六00:07:27 CET 1937
Sat 10月23日01:07:27 CET 1937
源代码是:
SimpleDateFormat format1 = new SimpleDateFormat("EEE, d MMM HH:mm");
System.out.println(format1.getCalendar().getTime());
format1.getCalendar().add(Calendar.HOUR, 1);
System.out.println(format1.getCalendar().getTime());
答案 0 :(得分:0)
验证主机上是否设置了正确的日期和时间。你的电脑似乎设置错了。访问http://time.is/
使用现代java.time类而不是麻烦的旧Calendar
类。
以UTC为单位获取当前时刻,分辨率最高可达纳秒。
Instant instant = Instant.now() ;
指定所需/预期的时区。
ZoneId z = ZoneId.of( "Europe/Paris" ) ) ;
调整到所需的时区。
ZonedDateTime zdt = instant.atZone( z ) ;
验证星期几。
DayOfWeek dow = zdt.getDayOfWeek() ;
收集这个时刻以及接下来的两个小时。
List< ZonedDateTime > moments = new ArrayList<>( 3 ) ;
moments.add( zdt ) ;
moments.add( zdt.plusHours( 1 ) ) ;
moments.add( zdt.plusHours( 2 ) ) ;
使用DateTimeFormatter
类生成一个String来表示这些值中的任何一个。搜索Stack Overflow获取更多信息,因为已经多次介绍过。