Google. Protobuf. WellknownTypes. Zaman Damgası
Zaman Damgası, herhangi bir saat diliminden veya takvimden bağımsız olarak zamanı (UTC, Epoch saatindeki nanosaniye çözünürlükte saniye ve saniye cinsinden temsil eden) temsil eder.
Özet
Gregoryen takvimini birinci yıla uzatan Proleptik Gregoryen Takvimi kullanılarak kodlanır. Tüm dakikaların 60 saniye, yani artık zaman saniyesinin "kayıp" olması ve bunun ardından yorum için artık ikinci bir tablo gerekmediği varsayarak kodlanır. Aralık: 0001-01-01T00:00:00Z ile 9999-12-31T23:59:59.999999999Z. Bu aralıkla kısıtlama yaparak RFC 3339 tarih dizelerine geçiş yapabiliriz. https://www.ietf.org/rfc/rfc3339.txt adresine bakın.
1. Örnek: POSIX time()
kaynağından Zaman Damgası hesaplayın.
Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
2. Örnek: POSIX gettimeofday()
kaynağından Zaman Damgası hesaplayın.
struct timeval tv; gettimeofday(&tv, NULL); Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
3. Örnek: Win32'den Zaman Damgası'nı hesaplama 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));
4. Örnek: Java'da Zaman Damgasını hesaplayın System.currentTimeMillis()
.
long millis = System.currentTimeMillis(); Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
5. Örnek: Python'da geçerli zaman damgasından Zaman Damgası'nı hesaplayın.
timestamp = Timestamp() timestamp.GetCurrentTime()
Devralma
Devralındığı kaynak: Google.Protobuf.ICustomDiagnosticMessage, pb::IMessage< Timestamp >
İnşaat Ustaları ve Yıkıcılar |
|
---|---|
Timestamp()
|
|
Timestamp(Timestamp other)
|
Özellikler |
|
---|---|
Descriptor
|
pbr::MessageDescriptor
|
Descriptor
|
pbr::MessageDescriptor pb::IMessage.
|
Nanos
|
int
Nanosaniye çözünürlükte saniyenin negatif olmayan kısmı.
|
Parser
|
pb::MessageParser< Timestamp >
|
Seconds
|
long
Unix dönemi 1970-01-01T00:00:00Z tarihinden bu yana UTC saatinin saniyesini gösterir.
|
Herkese açık özellikler |
|
---|---|
NanosFieldNumber = 2
|
const int
"nanos" alanı için alan numarası.
|
SecondsFieldNumber = 1
|
const int
"Saniye" alanı için alan numarası.
|
Herkese açık işlevler |
|
---|---|
CalculateSize()
|
int
Protokol Arabellek kablosu biçiminde bu iletinin bayt cinsinden boyutunu hesaplar.
|
Clone()
|
|
Equals(object other)
|
override bool
|
Equals(Timestamp other)
|
bool
|
GetHashCode()
|
override int
|
MergeFrom(Timestamp other)
|
void
|
MergeFrom(pb::CodedInputStream input)
|
void
|
ToDateTime()
|
DateTime
Bu zaman damgasını DateTime'a dönüştürür.
|
ToDateTimeOffset()
|
DateTimeOffset
Bu zaman damgasını DateTimeOffset etiketine dönüştürür.
|
ToDiagnosticString()
|
string
Teşhis amacıyla bu Zaman Damgası'nın dize gösterimini döndürür.
|
ToString()
|
override string
|
WriteTo(pb::CodedOutputStream output)
|
void
|
Herkese açık statik işlevler |
|
---|---|
FromDateTime(DateTime dateTime)
|
Belirtilen DateTime'ı Zaman Damgası'na dönüştürür.
|
FromDateTimeOffset(DateTimeOffset dateTimeOffset)
|
Belirtilen DateTimeOffset değerini Timestamp'a dönüştürür
|
operator+(Timestamp lhs, Duration rhs)
|
|
operator-(Timestamp lhs, Timestamp rhs)
|
Bir Zaman Damgası ile diğeri arasındaki Zaman farkını döndürür.
|
operator-(Timestamp lhs, Duration rhs)
|
Özellikler
Açıklayıcı
pbr::MessageDescriptor Descriptor
Açıklayıcı
pbr::MessageDescriptor pb::IMessage. Descriptor
Nano
int Nanos
Nanosaniye çözünürlükte saniyenin negatif olmayan kısmı.
Kesirli negatif ikinci değerler yine de negatif olmayan nanos değerlerine sahip olmalıdır. 0 ile 999.999.999 (dahil) arasında olmalıdır.
Ayrıştırıcı
pb::MessageParser< Timestamp > Parser
Saniye
long Seconds
Unix dönemi 1970-01-01T00:00:00Z tarihinden bu yana UTC saatinin saniyesini gösterir.
0001-01-01T00:00:00Z ile 9999-12-31T23:59:59Z (dahil) arasında olmalıdır.
Herkese açık özellikler
Herkese açık işlevler
Hesap Boyutu
int CalculateSize()
Protokol Arabellek kablosu biçiminde bu iletinin bayt cinsinden boyutunu hesaplar.
Ayrıntılar | |
---|---|
İadeler |
Bu iletinin kodlanan bir çıkış akışına yazılması için gereken bayt sayısı.
|
Klonla
Timestamp Clone()
Şuna eşittir:
override bool Equals( object other )
Şuna eşittir:
bool Equals( Timestamp other )
GetHashCode'u
override int GetHashCode()
Birleştirme Kaynağı
void MergeFrom( Timestamp other )
Birleştirme Kaynağı
void MergeFrom( pb::CodedInputStream input )
Zaman damgası
Timestamp()
Zaman damgası
Timestamp( Timestamp other )
Tarih
DateTime ToDateTime()
Bu zaman damgasını DateTime'a dönüştürür.
Sonuçta elde edilen DateTime
her zaman Utc
şeklinde bir Kind
içerir. Zaman damgası belirli bir değer işareti değilse başlangıç zamanına doğru kısaltılır. Örneğin, Nanos değeri 99 olan bir zaman damgası, tam olarak ikinci saniyede bir DateTime değeriyle sonuçlanır.
Ayrıntılar | |||
---|---|---|---|
İstisnalar |
|
||
İadeler |
DateTime olarak bu zaman damgası. |
ToDateTimeOfset
DateTimeOffset ToDateTimeOffset()
Bu zaman damgasını DateTimeOffset etiketine dönüştürür.
Sonuçta elde edilen DateTimeOffset
her zaman sıfıra Offset
sahip olur. Zaman damgası belirli bir değer işareti değilse başlangıç zamanına doğru kısaltılır. Örneğin, Nanos değeri 99 olan bir zaman damgası, tam olarak ikinci saniyede bir DateTimeOffset değeriyle sonuçlanır.
Ayrıntılar | |||
---|---|---|---|
İstisnalar |
|
||
İadeler |
DateTimeOffset olarak bu zaman damgası. |
Teşhis Aracı
string ToDiagnosticString()
Teşhis amacıyla bu Zaman Damgası'nın dize gösterimini döndürür.
Normalde döndürülen değer bir JSON dizesi değeridir (baştaki ve sondaki tırnak işaretleri dahil) ancak değer normalleştirilmemişse veya aralık dışındaysa uyarıyla birlikte bir JSON nesne gösterimi döndürülür. Bu, sorunları teşhis etmeye çalışırken istisnaların atılmaması için kullanılır. Normal JSON biçimlendiricisi, normalleştirilmemiş değerler için bir istisna göndermeye devam eder.
Ayrıntılar | |
---|---|
İadeler |
Bu değerin bir dize gösterimi.
|
Dize
override string ToString()
Yazma
void WriteTo( pb::CodedOutputStream output )
Herkese açık statik işlevler
Başlangıç Tarihi
Timestamp FromDateTime( DateTime dateTime )
Belirtilen DateTime'ı Zaman Damgası'na dönüştürür.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
||
İstisnalar |
|
||
İadeler |
Dönüştürülen zaman damgası.
|
Başlangıç Tarihi ve Zamanı
Timestamp FromDateTimeOffset( DateTimeOffset dateTimeOffset )
Belirtilen DateTimeOffset değerini Timestamp'a dönüştürür
Değer dönüştürülürken zaman farkı göz önünde bulundurulur (yani aynı zaman damgası temsil edilir), ancak ortaya çıkan değerin ayrı bir parçası değildir. Diğer bir deyişle, orijinal DateTimeOffset
öğesini almak için herhangi bir geri dönüş işlemi yoktur.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
||
İadeler |
Dönüştürülen zaman damgası.
|
operatör+
Timestamp operator+( Timestamp lhs, Duration rhs )
Başka bir Timestamp
elde etmek için Zaman Damgası'na Süre ekler.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
||||
İadeler |
Sürenin zaman damgasına eklenmesiyle elde edilen sonuçtur.
|
operatör-
Duration operator-( Timestamp lhs, Timestamp rhs )
Bir Zaman Damgası ile diğeri arasındaki Zaman farkını döndürür.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
||||
İadeler |
Belirtilen iki zaman damgası arasındaki fark.
|