แสดงเวลาทั่วไป (หรือบางครั้งเป็นเวลาจริง)
ประเภทนี้สามารถแสดงเวลามาตรฐานได้ 1 ใน 2 วิธีต่อไปนี้
- เมื่อตั้งค่า utcOffset และไม่ได้ตั้งค่า timeZone: เวลาพลเรือนในวันที่ในปฏิทินซึ่งมีค่าชดเชยเวลาจาก UTC ที่เฉพาะเจาะจง
- เมื่อตั้งค่า timeZone และไม่ได้ตั้งค่า utcOffset: เวลาพลเรือนของวันในปฏิทินตามเขตเวลาหนึ่งๆ
- เมื่อไม่ได้ตั้งค่า timeZone หรือ utcOffset: เวลาพลเรือนของวันในปฏิทินตามเวลาท้องถิ่น
วันที่จะสัมพันธ์กับปฏิทินเกรโกเรียนแบบโปรเลปติก
หากปี เดือน หรือวันเป็น 0 ระบบจะถือว่า DateTime นั้นไม่มีปี เดือน หรือวันตามลำดับ
นอกจากนี้ ประเภทนี้ยังอาจใช้เพื่อแสดงเวลาจริงได้หากตั้งค่าฟิลด์วันที่และเวลาทั้งหมดและตั้งค่า time_offset
oneof ไว้ด้วย ลองใช้ข้อความ Timestamp
สำหรับเวลาจริงแทน หาก Use Case ของคุณต้องการจัดเก็บเขตเวลาของผู้ใช้ด้วย ก็สามารถดำเนินการได้ในช่องอื่น
ประเภทนี้มีความเป็นยืดหยุ่นมากกว่าที่บางแอปพลิเคชันอาจต้องการ อย่าลืมบันทึกและตรวจสอบข้อจำกัดของแอปพลิเคชัน
การแสดง JSON |
---|
{ "year": integer, "month": integer, "day": integer, "hours": integer, "minutes": integer, "seconds": integer, "nanos": integer, // Union field |
ช่อง | |
---|---|
year |
ไม่บังคับ ปีของวันที่ ต้องอยู่ในช่วง 1 ถึง 9999 หรือ 0 หากระบุวันที่และเวลาโดยไม่มีปี |
month |
ไม่บังคับ เดือนของปี ต้องมีค่าระหว่าง 1 ถึง 12 หรือ 0 หากระบุวันที่และเวลาโดยไม่มีเดือน |
day |
ไม่บังคับ วันของเดือน ต้องมีค่าระหว่าง 1 ถึง 31 และถูกต้องสำหรับปีและเดือน หรือ 0 หากระบุวันที่และเวลาโดยไม่มีวัน |
hours |
ไม่บังคับ เวลาของวันในรูปแบบ 24 ชั่วโมง ควรมีค่าระหว่าง 0 ถึง 23 โดยค่าเริ่มต้นจะเป็น 0 (เที่ยงคืน) API อาจเลือกที่จะอนุญาตค่า "24:00:00" สำหรับสถานการณ์ต่างๆ เช่น เวลาปิดทำการของธุรกิจ |
minutes |
ไม่บังคับ นาทีของชั่วโมงของวัน ต้องมีค่าระหว่าง 0 ถึง 59 โดยค่าเริ่มต้นคือ 0 |
seconds |
ไม่บังคับ วินาทีของนาที โดยปกติต้องมีค่าระหว่าง 0 ถึง 59 โดยค่าเริ่มต้นคือ 0 API อาจอนุญาตให้ใช้ค่า 60 ได้หากอนุญาตให้ใช้วินาทีของ leap |
nanos |
ไม่บังคับ เศษส่วนของวินาทีเป็นนาโนวินาที ต้องมีค่าระหว่าง 0 ถึง 999,999,999 โดยค่าเริ่มต้นคือ 0 |
ฟิลด์สหภาพ time_offset ไม่บังคับ ระบุการชดเชยเวลา UTC หรือเขตเวลาของ DateTime โปรดเลือกอย่างรอบคอบ โดยพิจารณาว่าข้อมูลเขตเวลาอาจเปลี่ยนแปลงในอนาคต (เช่น ประเทศหนึ่งๆ แก้ไขวันที่เริ่มต้น/สิ้นสุด DST และระบบได้จัดเก็บ DateTime ในอนาคตในช่วงที่ได้รับผลกระทบไว้แล้ว) หากไม่ระบุ ระบบจะถือว่า DateTime เป็นเขตเวลาท้องถิ่น time_offset ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น |
|
utc |
ความต่างเวลา UTC ต้องเป็นจำนวนเต็มวินาทีระหว่าง -18 ชั่วโมงถึง +18 ชั่วโมง เช่น ระบบจะแสดงออฟเซ็ต UTC ที่ -4:00 เป็น { seconds: -14400 } ระยะเวลาเป็นวินาทีที่มีเศษทศนิยมได้สูงสุด 9 หลัก โดยลงท้ายด้วย |
time |
เขตเวลา |