DateTime

แสดงเวลาทั่วไป (หรือบางครั้งก็เวลาจริง)

ประเภทนี้แสดงเวลาพลเรือนได้หลายวิธีดังนี้

  • เมื่อตั้งค่า utcOffset และไม่ได้ตั้งค่า timeZone: เวลาพลเรือนในวันปฏิทินที่มีค่าชดเชยเวลาจาก UTC ที่เฉพาะเจาะจง
  • เมื่อตั้งค่า timeZone และไม่ได้ตั้งค่า utcOffset: เวลาพลเรือนในวันตามปฏิทินในเขตเวลาหนึ่งๆ
  • เมื่อไม่ได้ตั้งค่าทั้ง timeZone และ utcOffset: เวลาพลเรือนในวันตามปฏิทินในเวลาท้องถิ่น

วันที่สัมพันธ์กับปฏิทินเกรกอเรียนแบบย้อนหลัง

หากปี เดือน หรือวันเป็น 0 ระบบจะถือว่า DateTime ไม่มีปี เดือน หรือวันตามลำดับ

นอกจากนี้ยังอาจใช้ประเภทนี้เพื่อแสดงเวลาจริงได้หากตั้งค่าฟิลด์วันที่และเวลาทั้งหมด และตั้งค่ากรณีใดกรณีหนึ่งของ time_offset oneof ลองใช้ข้อความ Timestamp สำหรับเวลาจริงแทน หากกรณีการใช้งานของคุณต้องการจัดเก็บเขตเวลาของผู้ใช้ด้วย คุณสามารถทำได้ในช่องอื่น

ประเภทนี้มีความยืดหยุ่นมากกว่าที่แอปพลิเคชันบางอย่างอาจต้องการ โปรดบันทึกและตรวจสอบข้อจำกัดของแอปพลิเคชัน

การแสดง JSON
{
  "year": integer,
  "month": integer,
  "day": integer,
  "hours": integer,
  "minutes": integer,
  "seconds": integer,
  "nanos": integer,

  // Union field time_offset can be only one of the following:
  "utcOffset": string,
  "timeZone": {
    object (TimeZone)
  }
  // End of list of possible types for union field time_offset.
}
ฟิลด์
year

integer

ไม่บังคับ ปีของวันที่ ต้องอยู่ระหว่าง 1 ถึง 9999 หรือ 0 หากระบุวันที่และเวลาโดยไม่มีปี

month

integer

ไม่บังคับ เดือนของปี ต้องมีค่าระหว่าง 1 ถึง 12 หรือ 0 หากระบุวันที่และเวลาโดยไม่มีเดือน

day

integer

ไม่บังคับ วันของเดือน ต้องอยู่ระหว่าง 1 ถึง 31 และถูกต้องสำหรับปีและเดือน หรือ 0 หากระบุวันที่และเวลาโดยไม่มีวัน

hours

integer

ไม่บังคับ ชั่วโมงของวันในรูปแบบ 24 ชั่วโมง ควรอยู่ระหว่าง 0 ถึง 23 โดยค่าเริ่มต้นคือ 0 (เที่ยงคืน) API อาจเลือกอนุญาตค่า "24:00:00" สำหรับสถานการณ์ต่างๆ เช่น เวลาปิดทำการของธุรกิจ

minutes

integer

ไม่บังคับ นาทีของชั่วโมงของวัน ต้องมีค่าระหว่าง 0 ถึง 59 โดยค่าเริ่มต้นคือ 0

seconds

integer

ไม่บังคับ วินาทีของนาทีของเวลา โดยปกติแล้วต้องอยู่ระหว่าง 0 ถึง 59 ค่าเริ่มต้นคือ 0 API อาจอนุญาตค่า 60 หากอนุญาตให้ใช้ลิปวินาที

nanos

integer

ไม่บังคับ เศษส่วนของวินาทีในหน่วยนาโนวินาที ต้องมีค่าระหว่าง 0 ถึง 999,999,999 โดยค่าเริ่มต้นคือ 0

ฟิลด์ Union time_offset ไม่บังคับ ระบุค่าชดเชยเวลา UTC หรือเขตเวลาของ DateTime โปรดเลือกอย่างรอบคอบโดยคำนึงถึงว่าข้อมูลเขตเวลาอาจมีการเปลี่ยนแปลงในอนาคต (เช่น ประเทศหนึ่งๆ แก้ไขวันที่เริ่มต้น/สิ้นสุดของ DST และระบบได้จัดเก็บ DateTime ในอนาคตในช่วงที่ได้รับผลกระทบไว้แล้ว) หากไม่ระบุ ระบบจะถือว่า DateTime เป็นเวลาท้องถิ่น time_offset ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
utcOffset

string (Duration format)

ความต่างเวลา UTC ต้องเป็นจำนวนเต็มวินาทีระหว่าง -18 ชั่วโมงถึง +18 ชั่วโมง เช่น ออฟเซ็ต UTC ที่ -4:00 จะแสดงเป็น { seconds: -14400 }

ระยะเวลาเป็นวินาทีที่มีเศษทศนิยมได้สูงสุด 9 หลัก โดยลงท้ายด้วย 's' เช่น "3.5s"

timeZone

object (TimeZone)

เขตเวลา