NOT: Bu site kullanımdan kaldırılmıştır. Site 31 Ocak 2023'ten sonra kapatılacak ve trafik https://protobuf.dev adresindeki yeni siteye yönlendirilecek. Bu sırada, yalnızca protobuf.dev'de güncellemeler yapılacak.

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)
Başka bir Timestamp elde etmek için Zaman Damgası'na Süre ekler.
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)
Başka bir Timestamp elde etmek için Zaman Damgası'ndan Süre çıkarır.

Ö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

NanoAlanAlanı

const int NanosFieldNumber = 2

"nanos" alanı için alan numarası.

Saniye AlanSayısı

const int SecondsFieldNumber = 1

"Saniye" alanı için alan numarası.

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
InvalidOperationException
Zaman damgası, yanlış bir şekilde normalleştirilmiş veya geçerli aralığın dışında kalan geçersiz değerler içeriyor.
İ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
InvalidOperationException
Zaman damgası, yanlış bir şekilde normalleştirilmiş veya geçerli aralığın dışında kalan geçersiz değerler içeriyor.
İ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
dateTime
İstisnalar
ArgumentException
dateTime Kind tarihi DateTimeKind.Utc değil.
İ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
dateTimeOffset
Zaman damgasına dönüştürülecek tarih ve saat (UTC farkıyla).
İ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
lhs
Sürenin ekleneceği zaman damgası. Boş olmamalıdır.
rhs
Eklenecek süre. Boş olmamalıdır.
İ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
lhs
Çıkarılacak zaman damgası. Boş olmamalıdır.
rhs
Çıkarılacak zaman damgası. Boş olmamalıdır.
İadeler
Belirtilen iki zaman damgası arasındaki fark.

operatör-

Timestamp operator-(
  Timestamp lhs,
  Duration rhs
)

Başka bir Timestamp elde etmek için Zaman Damgası'ndan Süre çıkarır.

Ayrıntılar
Parametreler
lhs
Sürenin çıkarılacağı zaman damgası. Boş olmamalıdır.
rhs
Çıkarılacak süre.
İadeler
Sürenin zaman damgasından çıkarılmasının sonucu.