Chỉ mục
DateTime
Biểu thị thời gian dân sự (hoặc đôi khi là thời gian thực tế).
Loại này có thể biểu thị thời gian dân sự theo một trong những cách sau:
- Khi bạn đặt utc_offset và không đặt time_zone: giờ dân sự trong một ngày theo lịch có thời gian chênh lệch cụ thể so với giờ UTC.
- Khi bạn đặt time_zone và không đặt utc_offset: thời gian dân sự vào một ngày theo lịch trong một múi giờ cụ thể.
- Khi bạn không đặt time_zone hoặc utc_offset: thời gian theo lịch vào một ngày 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 bằng 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 tế nếu bạn đặt tất cả các trường ngày và giờ và đặ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 đó trong một trường khác.
Loại này linh hoạt hơn so với mong muốn của một số ứng dụng. Đừng quên ghi lại và xác thực các giới hạn của ứng dụng.
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 ngày giờ không có ngày. |
hours |
Không bắt buộc. Giờ trong ngày ở định dạng 24 giờ. Nên 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 tình huống như thời gian đóng cửa doanh nghiệp. |
minutes |
Không bắt buộc. Số phút trong ngày. Giá trị phải nằm trong khoảng từ 0 đến 59, giá trị mặc định là 0. |
seconds |
Không bắt buộc. Số giây trong phút. 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 nhảy giây. |
nanos |
Không bắt buộc. Phân số giây tính bằng nano giây. Phải từ 0 đến 999.999.999, mặc định là 0. |
Trường hợp hợp nhất time_offset . Không bắt buộc. Chỉ định độ lệch UTC hoặc múi giờ của DateTime. Hãy chọn cẩn thận các lựa chọn, 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à ngày giờ 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 giá trị sau: |
|
utc_ |
Độ lệch so với giờ UTC. Phải là số nguyên giây, trong khoảng từ -18 giờ đến +18 giờ. Ví dụ: độ lệch UTC là -4:00 sẽ được biểu diễn dưới dạng { seconds: -14400 }. |
time_ |
Múi giờ. |
TimeOfDay
Biểu thị thời gian trong ngày. Ngày và múi giờ không quan trọng hoặc được chỉ định ở nơi khác. API có thể chọn cho phép giây nhuận. Các loại liên quan là google.type.Date
và google.protobuf.Timestamp
.
Trường | |
---|---|
hours |
Số giờ trong ngày theo định dạng 24 giờ. Phải lớn hơn hoặc bằng 0 và thường phải nhỏ hơn hoặc bằng 23. API có thể chọn cho phép giá trị "24:00:00" cho các tình huống như thời gian đóng cửa doanh nghiệp. |
minutes |
Số phút trong một giờ. Phải lớn hơn hoặc bằng 0 và nhỏ hơn hoặc bằng 59. |
seconds |
Giây một phút. Phải lớn hơn hoặc bằng 0 và thường phải nhỏ hơn hoặc bằng 59. Một API có thể cho phép giá trị 60 nếu cho phép nhảy giây. |
nanos |
Các phân số của giây, tính bằng nano giây. Phải lớn hơn hoặc bằng 0 và nhỏ hơn hoặc bằng 999.999.999. |
TimeZone
Biểu thị một múi giờ trong Cơ sở dữ liệu múi giờ IANA.
Trường | |
---|---|
id |
Múi giờ trong Cơ sở dữ liệu múi giờ IANA, ví dụ: "America/New_York". |
version |
Không bắt buộc. Số phiên bản Cơ sở dữ liệu múi giờ IANA, ví dụ: "2019a". |