我正在尝试将LocalDate转换为时间戳,但一直在说:valueOf(java.lang.String) in Timestamp cannot be applied to (java.time.LocalDateTime)
我在做什么:
LocalDate date = LocalDate.of(year, month+1, day);
Timestamp ts = Timestamp.valueOf(date.atTime(LocalTime.MIDNIGHT));
年,月和日来自DatePicker。
获取日期。
LocalDate localDate = LocalDate.of( 2020 , Month.JANUARY , 23 ) ;
获取在某个时区或UTC偏移量中看到的一天的第一时刻。
不要假设一天从00:00开始。一些区域中的某些日期从另一个时间开始,例如01:00。
ZoneId z = ZoneId.of( "Africa/Casablanca" ) ;
ZonedDateTime zdt = LocalDate.atStartOfDay( z ) ;
获得自UTC 1970年第一时刻的纪元参考以来的毫秒数。
long milliseconds = zdt.toInstant().toEpochMilli() ;
将该数字提供给java.sql.Timestamp
的构造函数。
java.sql.Timestamp ts = new Timestamp( milliseconds) ;
甚至更好,请跳过Timestamp
类。该类存在严重缺陷,被设计为肮脏的hack。该类现在是旧式的,几年前被现代的[[java.time类所取代。
java.time
类。myPrepared