Source File
timestamp.pb.go
Belonging Package
google.golang.org/protobuf/types/known/timestamppb
// Protocol Buffers - Google's data interchange format// Copyright 2008 Google Inc. All rights reserved.// https://developers.google.com/protocol-buffers///// Redistribution and use in source and binary forms, with or without// modification, are permitted provided that the following conditions are// met://// * Redistributions of source code must retain the above copyright// notice, this list of conditions and the following disclaimer.// * Redistributions in binary form must reproduce the above// copyright notice, this list of conditions and the following disclaimer// in the documentation and/or other materials provided with the// distribution.// * Neither the name of Google Inc. nor the names of its// contributors may be used to endorse or promote products derived from// this software without specific prior written permission.//// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.// Code generated by protoc-gen-go. DO NOT EDIT.// source: google/protobuf/timestamp.proto// Package timestamppb contains generated types for google/protobuf/timestamp.proto.//// The Timestamp message represents a timestamp,// an instant in time since the Unix epoch (January 1st, 1970).//// # Conversion to a Go Time//// The AsTime method can be used to convert a Timestamp message to a// standard Go time.Time value in UTC://// t := ts.AsTime()// ... // make use of t as a time.Time//// Converting to a time.Time is a common operation so that the extensive// set of time-based operations provided by the time package can be leveraged.// See https://golang.org/pkg/time for more information.//// The AsTime method performs the conversion on a best-effort basis. Timestamps// with denormal values (e.g., nanoseconds beyond 0 and 99999999, inclusive)// are normalized during the conversion to a time.Time. To manually check for// invalid Timestamps per the documented limitations in timestamp.proto,// additionally call the CheckValid method://// if err := ts.CheckValid(); err != nil {// ... // handle error// }//// # Conversion from a Go Time//// The timestamppb.New function can be used to construct a Timestamp message// from a standard Go time.Time value://// ts := timestamppb.New(t)// ... // make use of ts as a *timestamppb.Timestamp//// In order to construct a Timestamp representing the current time, use Now://// ts := timestamppb.Now()// ... // make use of ts as a *timestamppb.Timestamppackage timestamppbimport (protoreflectprotoimplreflectsynctimeunsafe)// A Timestamp represents a point in time independent of any time zone or local// calendar, encoded as a count of seconds and fractions of seconds at// nanosecond resolution. The count is relative to an epoch at UTC midnight on// January 1, 1970, in the proleptic Gregorian calendar which extends the// Gregorian calendar backwards to year one.//// All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap// second table is needed for interpretation, using a [24-hour linear// smear](https://developers.google.com/time/smear).//// The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By// restricting to that range, we ensure that we can convert to and from [RFC// 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.//// # Examples//// Example 1: Compute Timestamp from POSIX `time()`.//// Timestamp timestamp;// timestamp.set_seconds(time(NULL));// timestamp.set_nanos(0);//// Example 2: Compute Timestamp from POSIX `gettimeofday()`.//// struct timeval tv;// gettimeofday(&tv, NULL);//// Timestamp timestamp;// timestamp.set_seconds(tv.tv_sec);// timestamp.set_nanos(tv.tv_usec * 1000);//// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.//// FILETIME ft;// GetSystemTimeAsFileTime(&ft);// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;//// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.// Timestamp timestamp;// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));//// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.//// long millis = System.currentTimeMillis();//// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)// .setNanos((int) ((millis % 1000) * 1000000)).build();//// Example 5: Compute Timestamp from Java `Instant.now()`.//// Instant now = Instant.now();//// Timestamp timestamp =// Timestamp.newBuilder().setSeconds(now.getEpochSecond())// .setNanos(now.getNano()).build();//// Example 6: Compute Timestamp from current time in Python.//// timestamp = Timestamp()// timestamp.GetCurrentTime()//// # JSON Mapping//// In JSON format, the Timestamp type is encoded as a string in the// [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the// format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"// where {year} is always expressed using four digits while {month}, {day},// {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional// seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),// are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone// is required. A proto3 JSON serializer should always use UTC (as indicated by// "Z") when printing the Timestamp type and a proto3 JSON parser should be// able to accept both UTC and other timezones (as indicated by an offset).//// For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past// 01:30 UTC on January 15, 2017.//// In JavaScript, one can convert a Date object to this format using the// standard// [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)// method. In Python, a standard `datetime.datetime` object can be converted// to this format using// [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with// the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use// the Joda Time's [`ISODateTimeFormat.dateTime()`](// http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()// ) to obtain a formatter capable of generating timestamps in this format.type Timestamp struct {state protoimpl.MessageState `protogen:"open.v1"`// Represents seconds of UTC time since Unix epoch// 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to// 9999-12-31T23:59:59Z inclusive.Seconds int64 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"`// Non-negative fractions of a second at nanosecond resolution. Negative// second values with fractions must still have non-negative nanos values// that count forward in time. Must be from 0 to 999,999,999// inclusive.Nanos int32 `protobuf:"varint,2,opt,name=nanos,proto3" json:"nanos,omitempty"`unknownFields protoimpl.UnknownFieldssizeCache protoimpl.SizeCache}// Now constructs a new Timestamp from the current time.func () *Timestamp {return New(time.Now())}// New constructs a new Timestamp from the provided time.Time.func ( time.Time) *Timestamp {return &Timestamp{Seconds: int64(.Unix()), Nanos: int32(.Nanosecond())}}// AsTime converts x to a time.Time.func ( *Timestamp) () time.Time {return time.Unix(int64(.GetSeconds()), int64(.GetNanos())).UTC()}// IsValid reports whether the timestamp is valid.// It is equivalent to CheckValid == nil.func ( *Timestamp) () bool {return .check() == 0}// CheckValid returns an error if the timestamp is invalid.// In particular, it checks whether the value represents a date that is// in the range of 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.// An error is reported for a nil Timestamp.func ( *Timestamp) () error {switch .check() {case invalidNil:return protoimpl.X.NewError("invalid nil Timestamp")case invalidUnderflow:return protoimpl.X.NewError("timestamp (%v) before 0001-01-01", )case invalidOverflow:return protoimpl.X.NewError("timestamp (%v) after 9999-12-31", )case invalidNanos:return protoimpl.X.NewError("timestamp (%v) has out-of-range nanos", )default:return nil}}const (_ = iotainvalidNilinvalidUnderflowinvalidOverflowinvalidNanos)func ( *Timestamp) () uint {const = -62135596800 // Seconds between 1970-01-01T00:00:00Z and 0001-01-01T00:00:00Z, inclusiveconst = +253402300799 // Seconds between 1970-01-01T00:00:00Z and 9999-12-31T23:59:59Z, inclusive:= .GetSeconds():= .GetNanos()switch {case == nil:return invalidNilcase < :return invalidUnderflowcase > :return invalidOverflowcase < 0 || >= 1e9:return invalidNanosdefault:return 0}}func ( *Timestamp) () {* = Timestamp{}:= &file_google_protobuf_timestamp_proto_msgTypes[0]:= protoimpl.X.MessageStateOf(protoimpl.Pointer()).StoreMessageInfo()}func ( *Timestamp) () string {return protoimpl.X.MessageStringOf()}func (*Timestamp) () {}func ( *Timestamp) () protoreflect.Message {:= &file_google_protobuf_timestamp_proto_msgTypes[0]if != nil {:= protoimpl.X.MessageStateOf(protoimpl.Pointer())if .LoadMessageInfo() == nil {.StoreMessageInfo()}return}return .MessageOf()}// Deprecated: Use Timestamp.ProtoReflect.Descriptor instead.func (*Timestamp) () ([]byte, []int) {return file_google_protobuf_timestamp_proto_rawDescGZIP(), []int{0}}func ( *Timestamp) () int64 {if != nil {return .Seconds}return 0}func ( *Timestamp) () int32 {if != nil {return .Nanos}return 0}var File_google_protobuf_timestamp_proto protoreflect.FileDescriptorconst file_google_protobuf_timestamp_proto_rawDesc = "" +"\n" +"\x1fgoogle/protobuf/timestamp.proto\x12\x0fgoogle.protobuf\";\n" +"\tTimestamp\x12\x18\n" +"\aseconds\x18\x01 \x01(\x03R\aseconds\x12\x14\n" +"\x05nanos\x18\x02 \x01(\x05R\x05nanosB\x85\x01\n" +"\x13com.google.protobufB\x0eTimestampProtoP\x01Z2google.golang.org/protobuf/types/known/timestamppb\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3"var (file_google_protobuf_timestamp_proto_rawDescOnce sync.Oncefile_google_protobuf_timestamp_proto_rawDescData []byte)func file_google_protobuf_timestamp_proto_rawDescGZIP() []byte {file_google_protobuf_timestamp_proto_rawDescOnce.Do(func() {file_google_protobuf_timestamp_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_google_protobuf_timestamp_proto_rawDesc), len(file_google_protobuf_timestamp_proto_rawDesc)))})return file_google_protobuf_timestamp_proto_rawDescData}var file_google_protobuf_timestamp_proto_msgTypes = make([]protoimpl.MessageInfo, 1)var file_google_protobuf_timestamp_proto_goTypes = []any{(*Timestamp)(nil), // 0: google.protobuf.Timestamp}var file_google_protobuf_timestamp_proto_depIdxs = []int32{0, // [0:0] is the sub-list for method output_type0, // [0:0] is the sub-list for method input_type0, // [0:0] is the sub-list for extension type_name0, // [0:0] is the sub-list for extension extendee0, // [0:0] is the sub-list for field type_name}func init() { file_google_protobuf_timestamp_proto_init() }func file_google_protobuf_timestamp_proto_init() {if File_google_protobuf_timestamp_proto != nil {return}type struct{}:= protoimpl.TypeBuilder{File: protoimpl.DescBuilder{GoPackagePath: reflect.TypeOf({}).PkgPath(),RawDescriptor: unsafe.Slice(unsafe.StringData(file_google_protobuf_timestamp_proto_rawDesc), len(file_google_protobuf_timestamp_proto_rawDesc)),NumEnums: 0,NumMessages: 1,NumExtensions: 0,NumServices: 0,},GoTypes: file_google_protobuf_timestamp_proto_goTypes,DependencyIndexes: file_google_protobuf_timestamp_proto_depIdxs,MessageInfos: file_google_protobuf_timestamp_proto_msgTypes,}.Build()File_google_protobuf_timestamp_proto = .Filefile_google_protobuf_timestamp_proto_goTypes = nilfile_google_protobuf_timestamp_proto_depIdxs = nil}
![]() |
The pages are generated with Golds v0.8.2. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |