C# 时间与时间戳互转的方法
时间: 2024-10-29 07:15:39 浏览: 26
在C#中,处理时间和时间戳通常涉及到`DateTime`、`DateTimeOffset`和`UnixTimeSpan`等类。以下是基本的操作:
1. **时间转换为Unix时间戳**:
- 使用`DateTimeOffset.UtcNow.ToUnixTimeSeconds()`或`ToUnixTimeMilliseconds()`方法将当前UTC时间转换为秒或毫秒级别的Unix时间戳。
```csharp
long timestampInMilliseconds = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
```
2. **Unix时间戳转换为时间**:
- 可以通过`UnixTimeSpan.FromSeconds(timestamp)`或`FromMilliseconds(timestamp)`创建一个`UnixTimeSpan`实例,然后与特定时区结合转换回`DateTime`或`DateTimeOffset`。
```csharp
DateTimeOffset datetimeUtc = DateTimeOffset.FromUnixTimeMilliseconds(timestampInMilliseconds);
DateTime localDateTime = datetimeUtc.LocalDateTime;
```
3. **日期范围转换**:
如果需要从其他日期格式转换到Unix时间戳,可以先用`DateTimeOffset.ParseExact()`或其他解析函数将其转换为`DateTimeOffset`,再按照上述步骤操作。
记得处理跨时区的时间和Unix时间戳,因为它们默认都是基于UTC的。
阅读全文