DateTime

Thể hiện thời gian thực (hay đôi khi là thời gian thực).

Loại này có thể biểu thị thời gian thực theo một trong những cách sau:

  • Khi bạn đặt utcOffset và không đặt thời gian: giờ dân sự vào một ngày theo lịch có độ lệch cụ thể từ UTC.
  • Khi bạn đặt múi giờ và không đặt utcOffset: thời gian dân sự vào một ngày theo lịch theo múi giờ cụ thể.
  • Khi bạn không đặt múi giờ cũng như utcOffset: giờ dân sự vào một ngày theo lịch theo giờ địa phương.

Đây là ngày tương ứng với Lịch Proleptic Gregorian.

Nếu năm, tháng hoặc ngày bằng 0, thì Ngày giờ được coi là không có năm, tháng hoặc ngày cụ thể.

Loại này cũng có thể được dùng để biểu thị thời gian thực nếu tất cả các trường ngày và giờ được đặt trong một trong hai trường hợp time_offset. Thay vào đó, hãy cân nhắc việ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, 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 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.
}
Các trường
year

integer

Không bắt buộc. Năm. 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. Phải từ 1 đến 12 hoặc 0 nếu chỉ định ngày giờ mà 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ó hiệu lực trong năm và tháng, hoặc bằng 0 nếu chỉ định ngày giờ mà không cần ngày.

hours

integer

Không bắt buộc. Giờ trong ngày ở định dạng 24 giờ. Giá trị phải từ 0 đến 23, mặc định là 0 (giữa đêm). API có thể chọn cho phép giá trị "24:00:00" trong các trường hợp như thời gian đóng cửa của doanh nghiệp.

minutes

integer

Không bắt buộc. Số phút 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 của thời gian. Thường phải từ 0 đến 59, mặc định là 0. API có thể cho phép giá trị 60 nếu cho phép thời gian nhuận.

nanos

integer

Không bắt buộc. Phân số giây trong nano giây. Phải từ 0 đến 999.999.999, mặc định là 0.

Trường liên kế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 kỹ giữa các quốc gia đó, 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 của họ 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, Ngày giờ đượ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

string (Duration format)

Chênh lệch múi giờ UTC. Phải là cả giây, từ -18 giờ đến +18 giờ. Ví dụ: độ lệch giờ UTC là -4:00 sẽ được biểu thị là { seconds: -14400 }.

Khoảng thời gian 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ờ.

TimeZone

Biểu thị múi giờ từ Cơ sở dữ liệu múi giờ IANA.

Biểu diễn dưới dạng JSON
{
  "id": string,
  "version": string
}
Các trường
id

string

Múi giờ Cơ sở dữ liệu múi giờ IANA, ví dụ: "America/New_York".

version

string

Không bắt buộc. Số phiên bản Cơ sở dữ liệu múi giờ IANA, ví dụ: "2019a".