Home | History | Annotate | Download | only in timestamp
      1 // Code generated by protoc-gen-go. DO NOT EDIT.
      2 // source: google/protobuf/timestamp.proto
      3 
      4 package timestamp
      5 
      6 import (
      7 	fmt "fmt"
      8 	proto "github.com/golang/protobuf/proto"
      9 	math "math"
     10 )
     11 
     12 // Reference imports to suppress errors if they are not otherwise used.
     13 var _ = proto.Marshal
     14 var _ = fmt.Errorf
     15 var _ = math.Inf
     16 
     17 // This is a compile-time assertion to ensure that this generated file
     18 // is compatible with the proto package it is being compiled against.
     19 // A compilation error at this line likely means your copy of the
     20 // proto package needs to be updated.
     21 const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
     22 
     23 // A Timestamp represents a point in time independent of any time zone
     24 // or calendar, represented as seconds and fractions of seconds at
     25 // nanosecond resolution in UTC Epoch time. It is encoded using the
     26 // Proleptic Gregorian Calendar which extends the Gregorian calendar
     27 // backwards to year one. It is encoded assuming all minutes are 60
     28 // seconds long, i.e. leap seconds are "smeared" so that no leap second
     29 // table is needed for interpretation. Range is from
     30 // 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z.
     31 // By restricting to that range, we ensure that we can convert to
     32 // and from  RFC 3339 date strings.
     33 // See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt).
     34 //
     35 // # Examples
     36 //
     37 // Example 1: Compute Timestamp from POSIX `time()`.
     38 //
     39 //     Timestamp timestamp;
     40 //     timestamp.set_seconds(time(NULL));
     41 //     timestamp.set_nanos(0);
     42 //
     43 // Example 2: Compute Timestamp from POSIX `gettimeofday()`.
     44 //
     45 //     struct timeval tv;
     46 //     gettimeofday(&tv, NULL);
     47 //
     48 //     Timestamp timestamp;
     49 //     timestamp.set_seconds(tv.tv_sec);
     50 //     timestamp.set_nanos(tv.tv_usec * 1000);
     51 //
     52 // Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
     53 //
     54 //     FILETIME ft;
     55 //     GetSystemTimeAsFileTime(&ft);
     56 //     UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
     57 //
     58 //     // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
     59 //     // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
     60 //     Timestamp timestamp;
     61 //     timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
     62 //     timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
     63 //
     64 // Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
     65 //
     66 //     long millis = System.currentTimeMillis();
     67 //
     68 //     Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
     69 //         .setNanos((int) ((millis % 1000) * 1000000)).build();
     70 //
     71 //
     72 // Example 5: Compute Timestamp from current time in Python.
     73 //
     74 //     timestamp = Timestamp()
     75 //     timestamp.GetCurrentTime()
     76 //
     77 // # JSON Mapping
     78 //
     79 // In JSON format, the Timestamp type is encoded as a string in the
     80 // [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
     81 // format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
     82 // where {year} is always expressed using four digits while {month}, {day},
     83 // {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
     84 // seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
     85 // are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
     86 // is required. A proto3 JSON serializer should always use UTC (as indicated by
     87 // "Z") when printing the Timestamp type and a proto3 JSON parser should be
     88 // able to accept both UTC and other timezones (as indicated by an offset).
     89 //
     90 // For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
     91 // 01:30 UTC on January 15, 2017.
     92 //
     93 // In JavaScript, one can convert a Date object to this format using the
     94 // standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString]
     95 // method. In Python, a standard `datetime.datetime` object can be converted
     96 // to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime)
     97 // with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one
     98 // can use the Joda Time's [`ISODateTimeFormat.dateTime()`](
     99 // http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime--
    100 // ) to obtain a formatter capable of generating timestamps in this format.
    101 //
    102 //
    103 type Timestamp struct {
    104 	// Represents seconds of UTC time since Unix epoch
    105 	// 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
    106 	// 9999-12-31T23:59:59Z inclusive.
    107 	Seconds int64 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"`
    108 	// Non-negative fractions of a second at nanosecond resolution. Negative
    109 	// second values with fractions must still have non-negative nanos values
    110 	// that count forward in time. Must be from 0 to 999,999,999
    111 	// inclusive.
    112 	Nanos                int32    `protobuf:"varint,2,opt,name=nanos,proto3" json:"nanos,omitempty"`
    113 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
    114 	XXX_unrecognized     []byte   `json:"-"`
    115 	XXX_sizecache        int32    `json:"-"`
    116 }
    117 
    118 func (m *Timestamp) Reset()         { *m = Timestamp{} }
    119 func (m *Timestamp) String() string { return proto.CompactTextString(m) }
    120 func (*Timestamp) ProtoMessage()    {}
    121 func (*Timestamp) Descriptor() ([]byte, []int) {
    122 	return fileDescriptor_292007bbfe81227e, []int{0}
    123 }
    124 
    125 func (*Timestamp) XXX_WellKnownType() string { return "Timestamp" }
    126 
    127 func (m *Timestamp) XXX_Unmarshal(b []byte) error {
    128 	return xxx_messageInfo_Timestamp.Unmarshal(m, b)
    129 }
    130 func (m *Timestamp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
    131 	return xxx_messageInfo_Timestamp.Marshal(b, m, deterministic)
    132 }
    133 func (m *Timestamp) XXX_Merge(src proto.Message) {
    134 	xxx_messageInfo_Timestamp.Merge(m, src)
    135 }
    136 func (m *Timestamp) XXX_Size() int {
    137 	return xxx_messageInfo_Timestamp.Size(m)
    138 }
    139 func (m *Timestamp) XXX_DiscardUnknown() {
    140 	xxx_messageInfo_Timestamp.DiscardUnknown(m)
    141 }
    142 
    143 var xxx_messageInfo_Timestamp proto.InternalMessageInfo
    144 
    145 func (m *Timestamp) GetSeconds() int64 {
    146 	if m != nil {
    147 		return m.Seconds
    148 	}
    149 	return 0
    150 }
    151 
    152 func (m *Timestamp) GetNanos() int32 {
    153 	if m != nil {
    154 		return m.Nanos
    155 	}
    156 	return 0
    157 }
    158 
    159 func init() {
    160 	proto.RegisterType((*Timestamp)(nil), "google.protobuf.Timestamp")
    161 }
    162 
    163 func init() { proto.RegisterFile("google/protobuf/timestamp.proto", fileDescriptor_292007bbfe81227e) }
    164 
    165 var fileDescriptor_292007bbfe81227e = []byte{
    166 	// 191 bytes of a gzipped FileDescriptorProto
    167 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4f, 0xcf, 0xcf, 0x4f,
    168 	0xcf, 0x49, 0xd5, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x2f, 0xc9, 0xcc, 0x4d,
    169 	0x2d, 0x2e, 0x49, 0xcc, 0x2d, 0xd0, 0x03, 0x0b, 0x09, 0xf1, 0x43, 0x14, 0xe8, 0xc1, 0x14, 0x28,
    170 	0x59, 0x73, 0x71, 0x86, 0xc0, 0xd4, 0x08, 0x49, 0x70, 0xb1, 0x17, 0xa7, 0x26, 0xe7, 0xe7, 0xa5,
    171 	0x14, 0x4b, 0x30, 0x2a, 0x30, 0x6a, 0x30, 0x07, 0xc1, 0xb8, 0x42, 0x22, 0x5c, 0xac, 0x79, 0x89,
    172 	0x79, 0xf9, 0xc5, 0x12, 0x4c, 0x0a, 0x8c, 0x1a, 0xac, 0x41, 0x10, 0x8e, 0x53, 0x1d, 0x97, 0x70,
    173 	0x72, 0x7e, 0xae, 0x1e, 0x9a, 0x99, 0x4e, 0x7c, 0x70, 0x13, 0x03, 0x40, 0x42, 0x01, 0x8c, 0x51,
    174 	0xda, 0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0xe9, 0xf9, 0x39, 0x89,
    175 	0x79, 0xe9, 0x08, 0x27, 0x16, 0x94, 0x54, 0x16, 0xa4, 0x16, 0x23, 0x5c, 0xfa, 0x83, 0x91, 0x71,
    176 	0x11, 0x13, 0xb3, 0x7b, 0x80, 0xd3, 0x2a, 0x26, 0x39, 0x77, 0x88, 0xc9, 0x01, 0x50, 0xb5, 0x7a,
    177 	0xe1, 0xa9, 0x39, 0x39, 0xde, 0x79, 0xf9, 0xe5, 0x79, 0x21, 0x20, 0x3d, 0x49, 0x6c, 0x60, 0x43,
    178 	0x8c, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0xbc, 0x77, 0x4a, 0x07, 0xf7, 0x00, 0x00, 0x00,
    179 }
    180