string转换为时间戳
时间: 2024-10-21 07:11:05 浏览: 33
在C#中,你可以使用`DateTimeOffset`结构或`DateTime`类的`ToUnixTimeSeconds()`方法将字符串转换为时间戳。通常,时间戳是以秒为单位的自1970年1月1日(UTC/GMT)以来的纪元时间。
以下是使用两种方法的例子:
1. **`DateTimeOffset` 类型**
如果你的字符串格式是ISO 8601(如 "yyyy-MM-ddTHH:mm:ss" 或 "yyyy-MM-ddTHH:mm:ss.fffZ"),你可以这样转换:
```csharp
string dateString = "2023-03-20T15:30:00";
DateTimeOffset dateTimeOffset = DateTimeOffset.Parse(dateString);
long timestamp = dateTimeOffset.ToUnixTimeSeconds();
```
2. **`DateTime` 类型(适用于本地时间)**
如果字符串代表的是本地时间,你需要先将其转换为协调世界时(UTC),然后才可用 `ToUnixTimeSeconds()`:
```csharp
string dateStringLocal = "2023-03-20 15:30:00"; // 注意这里没有时区信息
DateTime localDate = DateTime.Parse(dateStringLocal);
DateTime utcDate = localDate.ToUniversalTime();
long timestamp = utcDate.ToUnixTimeSeconds();
```
注意:如果你的时间字符串不遵循标准格式,可能需要额外的日期解析步骤,比如使用`DateTime.TryParse`或`DateTimeOffset.TryParseExact`等方法。
阅读全文