Biểu thị thời gian dân sự (hoặc đôi khi là thời gian thực).
Loại này có thể biểu thị thời gian dân sự theo một trong số ít cách có thể:
- Khi utcOffset được đặt và timeZone chưa được đặt: thời gian dân sự trong một ngày dương lịch với một độ lệch cụ thể so với giờ UTC.
- Khi timeZone được đặt và utcOffset chưa được đặt: thời gian dân sự vào một ngày trên lịch theo một múi giờ cụ thể.
- Khi bạn không đặt timeZone và utcOffset: thời gian dân sự trong một ngày dương lịch theo giờ địa phương.
Ngày này có liên quan đến Lịch Gregorian Proleptic.
Nếu năm, tháng hoặc ngày là 0, thì DateTime được coi là không có năm, tháng hoặc ngày cụ thể tương ứng.
Loại này cũng có thể được dùng để biểu thị thời gian thực nếu bạn đặt tất cả các trường ngày và giờ, đồng thời đặt một trong hai trường hợp của time_offset oneof. Thay vào đó, hãy cân nhắc sử dụng thông báo Timestamp cho thời gian thực. Nếu trường hợp sử dụng của bạn cũng muốn lưu trữ múi giờ của người dùng, thì bạn có thể thực hiện việc này trong một trường khác.
Loại này linh hoạt hơn so với một số ứng dụng có thể muốn. Hãy nhớ ghi lại và xác thực các hạn chế của ứng dụng.
| Biểu diễn dưới dạng JSON |
|---|
{ "year": integer, "month": integer, "day": integer, "hours": integer, "minutes": integer, "seconds": integer, "nanos": integer, // Union field |
| Trường | |
|---|---|
year |
Không bắt buộc. Năm của ngày. Giá trị phải từ 1 đến 9999 hoặc bằng 0 nếu chỉ định ngày giờ không có năm. |
month |
Không bắt buộc. Tháng trong năm. Giá trị phải từ 1 đến 12 hoặc bằng 0 nếu chỉ định ngày giờ không có tháng. |
day |
Không bắt buộc. Ngày trong tháng. Giá trị phải từ 1 đến 31 và có giá trị trong năm và tháng, hoặc bằng 0 nếu chỉ định một ngày giờ không có ngày. |
hours |
Không bắt buộc. Giờ trong ngày theo định dạng 24 giờ. Giá trị phải nằm trong khoảng từ 0 đến 23, mặc định là 0 (nửa đêm). API có thể chọn cho phép giá trị "24:00:00" cho các trường hợp như giờ đóng cửa của doanh nghiệp. |
minutes |
Không bắt buộc. Số phút trong giờ của ngày. Phải từ 0 đến 59, mặc định là 0. |
seconds |
Không bắt buộc. Số giây trong phút của thời gian. Thường phải nằm trong khoảng từ 0 đến 59, mặc định là 0. Một API có thể cho phép giá trị 60 nếu cho phép giây nhuận. |
nanos |
Không bắt buộc. Phân số của giây tính bằng nano giây. Giá trị phải từ 0 đến 999.999.999, mặc định là 0. |
Trường nhóm time_offset. Không bắt buộc. Chỉ định độ lệch UTC hoặc múi giờ của DateTime. Hãy cân nhắc kỹ lưỡng khi chọn giữa hai lựa chọn này, vì dữ liệu múi giờ có thể thay đổi trong tương lai (ví dụ: một quốc gia sửa đổi ngày bắt đầu/kết thúc DST và các DateTime trong tương lai trong phạm vi bị ảnh hưởng đã được lưu trữ). Nếu bạn bỏ qua thuộc tính này, DateTime sẽ được coi là theo giờ địa phương. time_offset chỉ có thể là một trong những trạng thái sau: |
|
utcOffset |
Độ lệch UTC. Phải là số nguyên giây, nằm trong khoảng từ -18 giờ đến +18 giờ. Ví dụ: độ lệch UTC là -4:00 sẽ được biểu thị là { seconds: -14400 }. Thời lượng tính bằng giây, có tối đa 9 chữ số thập phân, kết thúc bằng " |
timeZone |
Múi giờ. |