Unity DateTime分别转成10位时间戳和13位时间戳,10位时间戳和13位时间戳分别转成DateTime
时间: 2024-09-13 21:19:19 浏览: 156
在Unity中,时间戳通常是指自1970年1月1日(UTC)以来的秒数或毫秒数。DateTime转成时间戳,以及时间戳转回DateTime,是常见的数据格式转换需求。
1. DateTime转换为10位时间戳(秒为单位):
```csharp
DateTime dateTime = DateTime.UtcNow; // 获取UTC的当前时间
long timestamp10 = (long)(dateTime - new DateTime(1970, 1, 1)).TotalSeconds; // 转换为10位时间戳
```
2. DateTime转换为13位时间戳(毫秒为单位):
```csharp
DateTime dateTime = DateTime.UtcNow; // 获取UTC的当前时间
long timestamp13 = (long)(dateTime - new DateTime(1970, 1, 1)).TotalMilliseconds; // 转换为13位时间戳
```
3. 10位时间戳转换为DateTime:
```csharp
long timestamp10 = 1234567890; // 示例10位时间戳
DateTime dateTime10 = new DateTime(1970, 1, 1).AddSeconds(timestamp10); // 转换为DateTime
```
4. 13位时间戳转换为DateTime:
```csharp
long timestamp13 = 1234567890123; // 示例13位时间戳
DateTime dateTime13 = new DateTime(1970, 1, 1).AddMilliseconds(timestamp13); // 转换为DateTime
```
注意:上述转换假设了本地时间为UTC时间。如果你的时间是本地时间,需要使用`DateTime.Now`而不是`DateTime.UtcNow`,并且在转换为时间戳时需要考虑时区差异。
阅读全文
相关推荐















