如何在 C# 中将时间 UUID 转换为日期时间戳

How to convert Time UUID to date time stamp in c#

我有一个 TimeUuid,我需要将其转换为 DateTime

有没有办法在 C# 中执行此操作?

我正在使用 CassandraCsharpDriver from DataStax,但它没有将 TimeUuid 转换为 Datetime 的功能,但相反是可能的。

示例 UUID:d91027c5-bd42-11e6-90be-2b4914b28d57

您可以使用这 2 个助手并使用 GetDateTime 方法转换为日期时间,

GuidVersion.cs

file-guidgenerator-cs

代码:

  String uuidString = "28442f00-2e98-11e2-0000-89a3a6fab5ef";
  Guid gui = new Guid(uuidString);
  DateTime dt = GuidGenerator.GetDateTime(gui);

可以使用GetDate() method of the TimeUuid structure,即returns DateTimeOffset 表示的值。

TimeUuid uuidValue = row.GetValue<TimeUuid>("time");
// TimeUuid structure exposes GetDate() method
DateTimeOffset dateOffset = uuidValue.GetDate();
DateTime dateTime = dateOffset.DateTime;