DateTime

Thể hiện thời gian dân sự (hoặc đôi khi là thời gian thực).

Loại này có thể đại diện cho thời gian dân sự theo một trong một số cách có thể có:

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

Kiểu này linh hoạt hơn so với mong muốn của một số ứng dụng. Hãy nhớ ghi lại và xác thực các giới hạn của đơn đăng ký.

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 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 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ị cho năm và tháng hoặc bằng 0 nếu chỉ định ngày giờ mà không có ngày.

hours

integer

Không bắt buộc. Giờ trong ngày ở định dạng 24 giờ. Nên là 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. Phút trong giờ trong ngày. Giá trị phải nằm trong khoảng từ 0 đến 59, giá trị mặc định là 0.

seconds

integer

Không bắt buộc. Số giây trong phút của thời gian. Thông 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 giây nhuận.

nanos

integer

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

Trường hợp time_offset. Không bắt buộc. Chỉ định số giờ chênh lệch so với giờ UTC hoặc múi giờ của giá trị DateTime. Hãy chọn kỹ lưỡng, cân nhắc đến việc 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, DateTime sẽ được coi là 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à toàn bộ giây, từ -18 giờ đến hơn 18 giờ. Ví dụ: độ lệch giờ UTC là -4:00 sẽ được biểu thị dưới dạng { giây: -14400 }.

Thời lượng tính bằng giây với 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

Đại diện cho 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
}
Trường
id

string

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

version

string

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