private static DateTime ConvertMicroSecondsSinceEpochToDateTime(ProtoBuf.Common.SignedTimestamp protobufSignedTimestamp)
        {
            DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
            long     timeInMicroSecondsSinceEpoch = (long)protobufSignedTimestamp.Timestamp;
            long     timeInTicksSinceEpoch        = timeInMicroSecondsSinceEpoch * 10;

            return(epoch.Add(new TimeSpan(timeInTicksSinceEpoch)));
        }
 public SignedTimestamp(ProtoBuf.Common.SignedTimestamp protobufSignedTimestamp)
 {
     Validation.NotNull(protobufSignedTimestamp, nameof(protobufSignedTimestamp));
     _timestamp        = ConvertMicroSecondsSinceEpochToDateTime(protobufSignedTimestamp);
     _version          = protobufSignedTimestamp.Version;
     _messageDigest    = protobufSignedTimestamp.MessageDigest.ToByteArray();
     _chainDigest      = protobufSignedTimestamp.ChainDigest.ToByteArray();
     _chainDigestSkip1 = protobufSignedTimestamp.ChainDigestSkip1.ToByteArray();
     _chainDigestSkip2 = protobufSignedTimestamp.ChainDigestSkip2.ToByteArray();
 }
示例#3
0
        public void ShouldHandleNegativeTimestamp()
        {
            var signedUnixTimestamp     = -1571630945999999;
            var unsignedUnixTimestamp   = (ulong)signedUnixTimestamp;
            var protoBufSignedTimestamp = new ProtoBuf.Common.SignedTimestamp {
                Timestamp = unsignedUnixTimestamp
            };

            var    signedTimestamp = new SignedTimestamp(protoBufSignedTimestamp);
            string result          = signedTimestamp.GetTimestamp().ToString(Format.RFC3339PatternMicro, DateTimeFormatInfo.InvariantInfo);

            Assert.AreEqual("1920-03-13T19:50:54.000001Z", result);
        }