Class DateTime (2.15.0)

public sealed class DateTime : IMessage<DateTime>, IEquatable<DateTime>, IDeepCloneable<DateTime>, IBufferMessage, IMessage

Represents civil time (or occasionally physical time).

This type can represent a civil time in one of a few possible ways:

  • When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC.
  • When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone.
  • When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time.

The date is relative to the Proleptic Gregorian Calendar.

If year is 0, the DateTime is considered not to have a specific year. month and day must have valid, non-zero values.

This type may also be used to represent a physical time if all the date and time fields are set and either case of the time_offset oneof is set. Consider using Timestamp message for physical time instead. If your use case also would like to store the user's timezone, that can be done in another field.

This type is more flexible than some applications may want. Make sure to document and validate your application's limitations.

Inheritance

object > DateTime

Namespace

Google.Type

Assembly

Google.Api.CommonProtos.dll

Constructors

DateTime()

public DateTime()

DateTime(DateTime)

public DateTime(DateTime other)
Parameter
Name Description
other DateTime

Fields

DayFieldNumber

public const int DayFieldNumber = 3

Field number for the "day" field.

Field Value
Type Description
int

HoursFieldNumber

public const int HoursFieldNumber = 4

Field number for the "hours" field.

Field Value
Type Description
int

MinutesFieldNumber

public const int MinutesFieldNumber = 5

Field number for the "minutes" field.

Field Value
Type Description
int

MonthFieldNumber

public const int MonthFieldNumber = 2

Field number for the "month" field.

Field Value
Type Description
int

NanosFieldNumber

public const int NanosFieldNumber = 7

Field number for the "nanos" field.

Field Value
Type Description
int

SecondsFieldNumber

public const int SecondsFieldNumber = 6

Field number for the "seconds" field.

Field Value
Type Description
int

TimeZoneFieldNumber

public const int TimeZoneFieldNumber = 9

Field number for the "time_zone" field.

Field Value
Type Description
int

UtcOffsetFieldNumber

public const int UtcOffsetFieldNumber = 8

Field number for the "utc_offset" field.

Field Value
Type Description
int

YearFieldNumber

public const int YearFieldNumber = 1

Field number for the "year" field.

Field Value
Type Description
int

Properties

Day

public int Day { get; set; }

Required. Day of month. Must be from 1 to 31 and valid for the year and month.

Property Value
Type Description
int

Descriptor

public static MessageDescriptor Descriptor { get; }
Property Value
Type Description
MessageDescriptor

Hours

public int Hours { get; set; }

Required. Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.

Property Value
Type Description
int

Minutes

public int Minutes { get; set; }

Required. Minutes of hour of day. Must be from 0 to 59.

Property Value
Type Description
int

Month

public int Month { get; set; }

Required. Month of year. Must be from 1 to 12.

Property Value
Type Description
int

Nanos

public int Nanos { get; set; }

Required. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.

Property Value
Type Description
int

Parser

public static MessageParser<DateTime> Parser { get; }
Property Value
Type Description
MessageParserDateTime

Seconds

public int Seconds { get; set; }

Required. Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.

Property Value
Type Description
int

TimeOffsetCase

public DateTime.TimeOffsetOneofCase TimeOffsetCase { get; }
Property Value
Type Description
DateTimeTimeOffsetOneofCase

TimeZone

public TimeZone TimeZone { get; set; }

Time zone.

Property Value
Type Description
TimeZone

UtcOffset

public Duration UtcOffset { get; set; }

UTC offset. Must be whole seconds, between -18 hours and +18 hours. For example, a UTC offset of -4:00 would be represented as { seconds: -14400 }.

Property Value
Type Description
Duration

Year

public int Year { get; set; }

Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.

Property Value
Type Description
int

Methods

CalculateSize()

public int CalculateSize()

Calculates the size of this message in Protocol Buffer wire format, in bytes.

Returns
Type Description
int

The number of bytes required to write this message to a coded output stream.

ClearTimeOffset()

public void ClearTimeOffset()

Clone()

public DateTime Clone()

Creates a deep clone of this object.

Returns
Type Description
DateTime

A deep clone of this object.

Equals(DateTime)

public bool Equals(DateTime other)
Parameter
Name Description
other DateTime
Returns
Type Description
bool

Equals(object)

public override bool Equals(object other)
Parameter
Name Description
other object
Returns
Type Description
bool
Overrides

GetHashCode()

public override int GetHashCode()
Returns
Type Description
int
Overrides

MergeFrom(CodedInputStream)

public void MergeFrom(CodedInputStream input)

Merges the data from the specified coded input stream with the current message.

Parameter
Name Description
input CodedInputStream
Remarks

See the user guide for precise merge semantics.

MergeFrom(DateTime)

public void MergeFrom(DateTime other)

Merges the given message into this one.

Parameter
Name Description
other DateTime
Remarks

See the user guide for precise merge semantics.

ToString()

public override string ToString()
Returns
Type Description
string
Overrides

WriteTo(CodedOutputStream)

public void WriteTo(CodedOutputStream output)

Writes the data to the given coded output stream.

Parameter
Name Description
output CodedOutputStream

Coded output stream to write the data to. Must not be null.