ดัชนี
DateTime
แสดงเวลาทั่วไป (หรือบางครั้งเป็นเวลาจริง)
ประเภทนี้สามารถแสดงเวลามาตรฐานได้ 1 ใน 2 วิธีต่อไปนี้
- เมื่อตั้งค่า utc_offset และไม่ตั้งค่า time_zone ไว้: เวลาทั่วไปในวันปฏิทินที่มีการชดเชยเวลาที่เฉพาะเจาะจงจาก UTC
- เมื่อตั้งค่า time_zone และไม่ได้ตั้งค่า utc_offset: เวลาพลเรือนในวันที่ในปฏิทินตามเขตเวลาหนึ่งๆ
- เมื่อไม่ได้ตั้งค่า time_zone หรือ utc_offset: เวลาพลเรือนในวันที่ในปฏิทินตามเวลาท้องถิ่น
วันที่จะสัมพันธ์กับปฏิทินเกรกอเรียนที่ Proleptic
หากปี เดือน หรือวันเป็น 0 ระบบจะถือว่า DateTime นั้นไม่มีปี เดือน หรือวันตามลำดับ
นอกจากนี้ ประเภทนี้ยังอาจใช้เพื่อแสดงเวลาจริงได้หากมีการตั้งค่าฟิลด์วันที่และเวลาทั้งหมด และตั้งค่า time_offset oneof ไว้เป็นกรณีใดกรณีหนึ่ง โปรดพิจารณาใช้ข้อความ Timestamp สำหรับเวลาจริงแทน หากกรณีการใช้งานของคุณต้องการจัดเก็บเขตเวลาของผู้ใช้ด้วย สามารถทำได้ในฟิลด์อื่น
ประเภทนี้มีความยืดหยุ่นมากกว่าบางแอปพลิเคชันที่ต้องการ อย่าลืมบันทึกและตรวจสอบข้อจำกัดของแอปพลิเคชัน
| ช่อง | |
|---|---|
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 } |
time_ |
เขตเวลา |
TimeOfDay
แสดงช่วงเวลาของวัน วันที่และเขตเวลาไม่สำคัญหรือระบุไว้ที่อื่น API อาจเลือกอนุญาตการใช้เวลาไม่กี่วินาที ประเภทที่เกี่ยวข้องคือ google.type.Date และ google.protobuf.Timestamp
| ช่อง | |
|---|---|
hours |
ชั่วโมงของวันในรูปแบบ 24 ชั่วโมง ต้องมากกว่าหรือเท่ากับ 0 และโดยทั่วไปต้องน้อยกว่าหรือเท่ากับ 23 API อาจเลือกที่จะอนุญาตค่า "24:00:00" สำหรับสถานการณ์ต่างๆ เช่น เวลาปิดทำการของธุรกิจ |
minutes |
นาทีของชั่วโมง ต้องมากกว่าหรือเท่ากับ 0 และน้อยกว่าหรือเท่ากับ 59 |
seconds |
วินาทีใน 1 นาที ต้องมากกว่าหรือเท่ากับ 0 และโดยทั่วไปต้องน้อยกว่าหรือเท่ากับ 59 API อาจอนุญาตให้ใช้ค่า 60 ได้หากอนุญาตให้ใช้วินาทีของ leap |
nanos |
เศษส่วนของวินาทีเป็นนาโนวินาที ต้องมากกว่าหรือเท่ากับ 0 และน้อยกว่าหรือเท่ากับ 999,999,999 |
TimeZone
แสดงเขตเวลาจากฐานข้อมูลเขตเวลา IANA
| ช่อง | |
|---|---|
id |
เขตเวลาของฐานข้อมูลเขตเวลา IANA เช่น "America/New_York" |
version |
ไม่บังคับ หมายเลขเวอร์ชันฐานข้อมูลเขตเวลาของ IANA เช่น "2019a" |