C# 字符串时间格式为yyyy-MM-dd HH:mm:ss 转为时间戳
时间: 2024-08-14 12:04:16 浏览: 130
在C#中,将字符串格式"yyyy-MM-dd HH:mm:ss"转换为时间戳通常涉及创建一个DateTime对象,然后使用ToString("O")方法将其转换为Unix时间戳(自1970年1月1日以来的秒数)。这里是步骤:
```csharp
string dateString = "2023-05-24 15:30:45";
DateTime datetime = DateTime.ParseExact(dateString, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
long timestamp = (long)(datetime.ToUniversalTime().Ticks / TimeSpan.TicksPerSecond);
```
这里,`ParseExact`方法用于根据给定模式解析日期字符串,`ToUniversalTime()`确保时间戳是基于协调世界时,而`Ticks / TimeSpan.TicksPerSecond`则将ticks值转换为秒。
相关问题
C# yyyy-MM-dd hh:mm:dd怎么转换成时间戳
在C#中,可以使用以下代码将指定的日期时间转换为Unix时间戳(以秒为单位):
```
DateTime datetime = DateTime.ParseExact("yyyy-MM-dd hh:mm:ss", "yyyy-MM-dd hh:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
long timestamp = (long)(datetime.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
```
其中,第一个参数是要转换的日期时间字符串,第二个参数是日期时间字符串的格式,第三个参数是一个CultureInfo对象,用于指定日期时间字符串的格式。
转换后的Unix时间戳将存储在一个long类型的变量中。
c#yyyy-MM-dd HH:mm:ss 转数字型
在 C# 中,如果你需要将 "yyyy-MM-dd HH:mm:ss" 格式的日期字符串转换为 DateTime 对象,然后再进一步转换为数字类型的整数或双精度浮点数,你可以这样做:
1. 首先,使用 `DateTime.TryParseExact` 或 `DateTime.ParseExact` 函数将字符串转换为 DateTime:
```csharp
string dateString = "2023-03-01 12:00:00";
DateTime dateTime;
if (DateTime.TryParseExact(dateString, "yyyy-MM-dd HH:mm:ss", null, DateTimeStyles.None, out dateTime))
{
// 成功转换,可以继续进行数值转换
}
else
{
throw new FormatException("Invalid date format");
}
```
2. 然后,你可以选择直接提取毫秒部分(对于时间间隔,例如自某个固定日期起算的总秒数)或者计算 Unix 时间戳(自 1970 年 1 月 1 日 00:00:00 UTC 起至该日期的秒数):
- 获取毫秒数:
```csharp
long milliseconds = dateTime.ToUniversalTime().Ticks / TimeSpan.TicksPerMillisecond;
```
- 或者获取 Unix 时间戳(以秒为单位):
```csharp
double unixTimestampSeconds = (dateTime.ToUniversalTime() - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds;
```
3. 如果你想得到的是一个整数,可以考虑舍去小数部分:
```csharp
int integerTimestamp = (int)unixTimestampSeconds; // 如果不需要保留小数位,则直接用 (int)millseconds
```
注意:上述代码假定 "yyyy-MM-dd HH:mm:ss" 的输入格式是正确的。如果不确定,最好在转换前进行验证。
阅读全文
相关推荐


















