C#将string的时间转换成时间戳
时间: 2023-10-02 10:06:05 浏览: 224
可以使用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# 获取当前时间戳
在C#中,可以使用以下代码获取当前时间戳:
引用\[2\]:
```csharp
public static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}
```
这段代码使用了`DateTime.UtcNow`获取当前的UTC时间,然后减去了1970年1月1日的UTC时间,得到了一个`TimeSpan`对象表示的时间间隔。最后,通过`TotalMilliseconds`属性将时间间隔转换为毫秒数,并使用`Convert.ToInt64`方法将其转换为长整型,最终返回一个字符串形式的时间戳。
#### 引用[.reference_title]
- *1* [C# 获取时间戳的方法,以及时间戳与日期的互转](https://blog.csdn.net/qq_52185114/article/details/126474973)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [c#中获取当前时间戳的几种方法](https://blog.csdn.net/Zzy_Genesis/article/details/100927544)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [C# 获取当前时间戳(正确版)](https://blog.csdn.net/zunguitiancheng/article/details/122197465)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
CSharp 时间戳格式转换
好的,我可以回答关于CSharp时间戳格式转换的问题。您可以使用DateTimeOffset.FromUnixTimeSeconds方法将UNIX时间戳转换为C# DateTime对象,然后使用DateTime对象的ToString方法将其格式化为所需的日期格式。例如,以下代码将UNIX时间戳转换为"yyyy-MM-dd HH:mm:ss"格式:
```
long unixTimeSeconds = 1609459200; // 2021/1/1 0:0:0
DateTimeOffset dateTimeOffset = DateTimeOffset.FromUnixTimeSeconds(unixTimeSeconds);
string dateString = dateTimeOffset.ToString("yyyy-MM-dd HH:mm:ss");
```
请注意,DateTimeOffset.FromUnixTimeSeconds方法期望的是秒数,如果您有毫秒级别的时间戳,请除以1000转换为秒。