年月日时分秒转为时间戳
时间: 2025-01-03 13:29:19 浏览: 13
### 将年月日时分秒格式的时间字符串转换为Unix时间戳
为了将指定格式的日期时间字符串转换成 Unix 时间戳,在 C# 中可以采用如下方法:
首先创建表示起始时刻 `1970-01-01T00:00:00Z` 的 `DateTime` 对象作为 Unix 纪元起点。接着解析输入的时间字符串并将其转化为 `DateTime` 类型的对象。最后通过减去这两个对象来获得总秒数或毫秒数。
以下是具体的实现方式[^1]:
```csharp
using System;
public class Program {
public static void Main() {
// 定义要转换的时间字符串
string inputTimeStr = "2023-10-05 14:48:32";
// 解析时间字符串到 DateTime 结构
DateTime parsedDate;
if (DateTime.TryParseExact(inputTimeStr, "yyyy-MM-dd HH:mm:ss", null,
System.Globalization.DateTimeStyles.None, out parsedDate)) {
// 获取 UTC 基准时间
DateTime epochStart = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
// 计算差值,并转为秒级时间戳
TimeSpan diff = parsedDate.ToUniversalTime().Subtract(epochStart);
long timestampSeconds = Convert.ToInt64(diff.TotalSeconds);
Console.WriteLine($"The Unix Timestamp is {timestampSeconds}");
} else {
Console.WriteLine("Invalid date format");
}
}
}
```
这段代码展示了如何把形如 `"YYYY-MM-DD hh:mm:ss"` 这样的时间字符串安全地转变为 Unix 时间戳,同时也考虑到了可能存在的不合法输入情况下的错误处理机制。
阅读全文