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 utcOffset và không đặt timeZone: thời gian dân sự vào một ngày theo lịch có độ lệch cụ thể so với giờ UTC.
  • Khi bạn đặt timeZone và không đặt utcOffset: 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 timeZone hoặc utcOffset: thời gian dân sự vào một ngày theo 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 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 tất cả các trường ngày và giờ đều được đặt và một trong hai trường hợp của time_offset oneof được đặt. 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 giới hạn 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 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.
}
Trường
year

integer

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

integer

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

integer

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

integer

Không bắt buộc. Giờ trong ngày theo định dạng 24 giờ. 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 tình huống như thời gian đóng cửa doanh nghiệp.

minutes

integer

Không bắt buộc. Số phút trong giờ trong ngày. Phải từ 0 đến 59, mặc định là 0.

seconds

integer

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. API có thể cho phép giá trị 60 nếu cho phép giây nhuận.

nanos

integer

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 giữa các loại dữ liệu 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 giờ mùa hè 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, DateTime sẽ được coi là theo giờ địa phương. time_offset chỉ có thể là một trong những loại sau:
utcOffset

string (Duration format)

Độ lệch giờ 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 diễn dưới dạng { 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 "s". Ví dụ: "3.5s".

timeZone

object (TimeZone)

Múi giờ.