tl; dr
ZonedDateTime.now(
ZoneId.of( "America/Montreal" )
)
…ของเขตเวลาเริ่มต้นปัจจุบัน…
ZonedDateTime.now(
ZoneId.systemDefault()
)
รายละเอียด
คำตอบโดยสตานิส Bshkyrtsevอย่างถูกต้องและตรงตอบคำถามของคุณ
แต่มีปัญหาขนาดใหญ่ที่เกี่ยวข้องกับการตามข้อเสนอแนะในคำตอบโดยจอนสกีต
LocalDateTime
ฉันไม่พบวิธีการแปลงช่วงเวลาที่สองเป็น LocalDateTime
LocalDateTimeโดยเจตนาไม่มีแนวคิดเรื่องเขตเวลาหรือ offset-from-UTC ไม่น่าจะเป็นสิ่งที่คุณต้องการ Local…หมายใด ๆท้องที่ไม่คนใดคนหนึ่งท้องที่ใดท้องที่หนึ่ง ชั้นนี้ไม่ได้หมายถึงช่วงเวลาเท่านั้นที่อาจเกิดขึ้นในช่วงเวลาที่พร้อมช่วงประมาณ 26-27 ชั่วโมง (ช่วงของโซนเวลาทั่วโลกบริการ)
Instant
ไม่จำเป็นต้องเริ่มต้นด้วยช่วงวินาทีหากคุณพยายามหาเวลาปัจจุบัน Instantได้รับในปัจจุบัน Instantชั้นหมายถึงช่วงเวลาบนไทม์ไลน์ในส่วนUTCมีความละเอียดของนาโนวินาที (ถึงเก้า (9) ตัวเลขของส่วนทศนิยม)
Instant instant = Instant.now();
ข้างในนั้นInstantคือจำนวนนับนาโนวินาที - จากยุค แต่เราไม่สนใจจริงๆ
ZonedDateTime
หากคุณต้องการเห็นช่วงเวลานั้นผ่านเลนส์นาฬิกาแขวนของภูมิภาคใดภูมิภาคหนึ่งให้ใช้ a ZoneIdให้ใช้ a ZonedDateTime.
ZoneId z = ZoneId.of( "Europe/Paris" );
ZonedDateTime zdt = instant.atZone( z );
เป็นทางลัดคุณสามารถทำได้โดยตรงกับไฟล์ ZonedDateTime .
ZonedDateTime zdt = ZonedDateTime.now( z );
A ZonedDateTimeมีInstantอยู่ภายใน โทรzdt.toInstant()เพื่อรับช่วงเวลาเดียวกันเป็นค่าพื้นฐานใน UTC จำนวนนาโนวินาทีตั้งแต่ยุคเท่ากันทั้งแบบ a ZonedDateTimeหรือแบบInstant.
วินาทีตั้งแต่ยุคที่กำหนด
หากคุณได้รับการนับจำนวนวินาทีตั้งแต่ยุคและยุคเป็นช่วงเวลาแรกของปี 1970 ในUTC ( 1970-01-01T00:00:00Z) ให้ป้อนตัวเลขInstantนั้นเป็น
long secondsSinceEpoch = 1_484_063_246L ;
Instant instant = Instant.ofEpochSecond( secondsSinceEpoch ) ;

เกี่ยวกับ java.time
java.timeกรอบถูกสร้างขึ้นใน Java 8 และต่อมา ชั้นเรียนเหล่านี้แย่งลำบากเก่ามรดกเรียนวันที่เวลาเช่นjava.util.Date,CalendarSimpleDateFormatและ
ต้องการเรียนรู้เพิ่มเติมโปรดดูที่ออราเคิลกวดวิชา และค้นหา Stack Overflow สำหรับตัวอย่างและคำอธิบายมากมาย ข้อมูลจำเพาะคือ JSR 310
โครงการJoda-Timeขณะนี้อยู่ในโหมดการบำรุงรักษาแนะนำให้ย้ายไปยังคลาสjava.time
คุณสามารถแลกเปลี่ยนวัตถุjava.timeโดยตรงกับฐานข้อมูลของคุณ ใช้ไดรเวอร์ JDBC ที่สอดคล้องกับJDBC 4.2หรือใหม่กว่า ไม่จำเป็นต้องมีสตริงไม่จำเป็นต้องมีjava.sql.*คลาส
จะหาคลาส java.time ได้ที่ไหน?
โครงการThreeTen-Extraขยาย java.time ด้วยคลาสเพิ่มเติม โปรเจ็กต์นี้เป็นพื้นที่พิสูจน์สำหรับการเพิ่ม java.time ในอนาคต คุณอาจพบว่าการเรียนที่มีประโยชน์บางอย่างที่นี่เช่นInterval, YearWeek, YearQuarterและอื่น ๆ อีกมากมาย
import java.time.{Instant, LocalDateTime, ZoneId, ZoneOffset}ทำงานหรือไม่ มันเป็นunexpected tokenสำหรับฉันในชวา 11