c#datetime转long
时间: 2023-07-20 09:38:48 浏览: 363
可以使用C#中的DateTime.Ticks属性将一个DateTime对象转换为一个long类型的数字,表示从0001/1/1午夜以来经过的100纳秒间隔数。以下是一个示例代码:
```
DateTime dateTime = DateTime.Now;
long ticks = dateTime.Ticks;
```
在上面的代码中,我们将当前时间转换为一个long类型的数字。你也可以将任何一个DateTime对象转换为一个long类型的数字。
相关问题
C# datetime 转10位时间戳
在C#中,如果你有一个`DateTime`类型的值,想要将其转换为10位时间戳(通常是指Unix时间戳,即自1970年1月1日 00:00:00 UTC以来的秒数),你可以使用`DateTimeOffset.UtcNow.Ticks`属性,因为`Ticks`返回的是自“1601年1月1日 0:0:0 Coordinated Universal Time (UTC)”起的100纳秒(10位精度不够,但这是最接近的做法)。这里是一个简单的示例:
```csharp
public static long DateTimeTo10BitTimestamp(DateTime dateTime)
{
// 获取到从1601年1月1日起的ticks,然后除以1e7(转换为毫秒)
return DateTimeOffset.UtcNow.Date.AddDays(dateTime.Date.AddDays(-new DateTime(1601, 1, 1).Date).TotalDays).Ticks / 10000000;
}
```
注意这个方法得到的是一个整数秒的表示,对于微秒级别的精确度并不适合。如果需要更精确的时间戳,可能会需要第三方库或者自行调整。
C# DateTime.TryParseExact转毫秒
在C#中,如果你有一个DateTime字符串并且想将其转换成毫秒数,可以使用`DateTime.TryParseExact`方法结合`DateTimeOffset.FromUnixTimeMilliseconds`函数。首先,你需要提供正确的日期时间格式模式(`DateTimeFormatInfo`)和源字符串来尝试解析。下面是一个示例:
```csharp
string inputDateString = "2023-04-01 12:00:00";
string formatPattern = "yyyy-MM-dd HH:mm:ss"; // 格式化模式
DateTime dateTime;
if (DateTime.TryParseExact(inputDateString, formatPattern, null, System.Globalization.DateTimeStyles.None, out dateTime))
{
// 如果解析成功,将DateTime转换为毫秒
DateTimeOffset utcDateTime = new DateTimeOffset(dateTime);
long millisecondsSinceEpoch = utcDateTime.ToUnixTimeMilliseconds();
Console.WriteLine($"The date in milliseconds is: {millisecondsSinceEpoch}");
}
else
{
Console.WriteLine("Failed to parse the date.");
}
阅读全文
相关推荐














