C#如何将datetime转换成时间戳
时间: 2023-10-18 18:11:45 浏览: 46
在C#中将DateTime转换为时间戳,可以使用以下代码实现:
```csharp
DateTime dt = DateTime.Now;
long timeStamp = (long)(dt - new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalSeconds;
```
其中,`dt`是要转换的DateTime对象,`timeStamp`是转换后的时间戳。代码中的1970年1月1日是Unix时间戳的起始时间,将`dt`减去起始时间并计算总秒数即可得到时间戳。需要注意的是,由于时间戳是以秒为单位的,因此需要将计算结果转换为long类型。
相关问题
C#将string的时间转换成时间戳
可以使用C#中的DateTime和TimeSpan类将字符串时间转换为时间戳。具体操作如下:
```csharp
//将字符串时间转换为DateTime对象
DateTime dt = DateTime.Parse("2021-07-20 15:30:00");
//获取1970-01-01到现在的时间间隔
TimeSpan ts = dt - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
//获取时间戳
long timestamp = Convert.ToInt64(ts.TotalSeconds);
```
其中,DateTime.Parse()方法将字符串时间转换为DateTime对象,TimeSpan类用于计算时间间隔,new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc)是Unix时间戳的起点,即1970年1月1日0时0分0秒。最后使用Convert.ToInt64()方法将时间间隔转换为秒数,即得到时间戳。
C#如何将时间戳转成Datetime
在C#中,可以使用`DateTimeOffset.FromUnixTimeSeconds(long seconds)`或者`DateTimeOffset.FromUnixTimeMilliseconds(long milliseconds)`方法将时间戳转换为`DateTimeOffset`对象,然后可以通过`DateTimeOffset.DateTime`属性获取对应的`DateTime`对象。
例如,将时间戳转换为以秒为单位的`DateTime`对象:
```csharp
long timestamp = 1609459200; // 时间戳,单位为秒
DateTimeOffset dateTimeOffset = DateTimeOffset.FromUnixTimeSeconds(timestamp);
DateTime dateTime = dateTimeOffset.DateTime;
```
其中,`1609459200`是一个时间戳,表示的是2021年1月1日0时0分0秒的时间戳,可以根据需要替换成其他的时间戳。