webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
Instance Methods | Properties | List of all members
GPBTimestamp Class Reference

#import <Timestamp.pbobjc.h>

Inheritance diagram for GPBTimestamp:
GPBMessage NSObject

Instance Methods

(instancetype) - initWithDate:
 
(instancetype) - initWithTimeIntervalSince1970:
 
- Instance Methods inherited from GPBMessage
(instancetype) - initWithData:error:
 
(instancetype) - initWithData:extensionRegistry:error:
 
(instancetype) - initWithCodedInputStream:extensionRegistry:error:
 
(void- writeToCodedOutputStream:
 Writes out the message to the given output stream. More...
 
(void- writeToOutputStream:
 Writes out the message to the given output stream. More...
 
(void- writeDelimitedToCodedOutputStream:
 
(void- writeDelimitedToOutputStream:
 
(nullable NSData *) - data
 
(NSData *) - delimitedData
 
(size_t- serializedSize
 
(GPBDescriptor *) - descriptor
 Return the descriptor for the message. More...
 
(BOOL- hasExtension:
 Test to see if the given extension is set on the message. More...
 
(nullable id- getExtension:
 
(void- setExtension:value:
 
(void- addExtension:value:
 
(void- setExtension:index:value:
 
(void- clearExtension:
 Clears the given extension for this message. More...
 
(void- clear
 Resets all of the fields of this message to their default values. More...
 
(void- mergeFromData:extensionRegistry:
 
(void- mergeFrom:
 

Properties

int64_t seconds
 
int32_t nanos
 
NSDatedate
 
NSTimeInterval timeIntervalSince1970
 
- Properties inherited from GPBMessage
GPBUnknownFieldSetunknownFields
 
BOOL initialized
 Are all required fields set in the message and all embedded messages. More...
 

Additional Inherited Members

- Class Methods inherited from GPBMessage
(instancetype) + message
 Returns an autoreleased instance. More...
 
(instancetype) + parseFromData:error:
 
(instancetype) + parseFromData:extensionRegistry:error:
 
(instancetype) + parseFromCodedInputStream:extensionRegistry:error:
 
(instancetype) + parseDelimitedFromCodedInputStream:extensionRegistry:error:
 
(GPBDescriptor *) + descriptor
 Return the descriptor for the message class. More...
 

Detailed Description

A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. 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 date strings. See https://www.ietf.org/rfc/rfc3339.txt.

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 current time in Python.

now = time.time()
seconds = int(now)
nanos = int((now - seconds) * 10**9)
timestamp = Timestamp(seconds=seconds, nanos=nanos)  

Method Documentation

◆ initWithDate:()

- (instancetype) initWithDate: (NSDate *)  date

Provided by category GPBTimestamp(GBPWellKnownTypes).

◆ initWithTimeIntervalSince1970:()

- (instancetype) initWithTimeIntervalSince1970: (NSTimeInterval timeIntervalSince1970

Provided by category GPBTimestamp(GBPWellKnownTypes).

Property Documentation

◆ date

- (NSDate *) date
readwritenonatomicstrong

Provided by category GPBTimestamp(GBPWellKnownTypes).

◆ nanos

- (int32_t) nanos
readwritenonatomicassign

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.

◆ seconds

- (int64_t) seconds
readwritenonatomicassign

Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.

◆ timeIntervalSince1970

- (NSTimeInterval) timeIntervalSince1970
readwritenonatomicassign

Provided by category GPBTimestamp(GBPWellKnownTypes).


The documentation for this class was generated from the following file: