unity年月日时转时间戳
时间: 2025-07-20 08:41:42 AIGC 浏览: 16 评论: 5
### Unity 中将 DateTime 转换为时间戳的实现方法
在 Unity 中,可以使用 C# 的 `DateTime` 和 `TimeZoneInfo` 类来实现将年月日时转换为时间戳的功能。时间戳通常表示自 1970 年 1 月 1 日(UTC 时间)以来的秒数或毫秒数。以下是具体实现方法:
#### 方法描述
通过计算目标日期与时间戳起始点(1970-01-01 UTC)之间的时间差,并将其转换为秒或毫秒,即可得到时间戳。
#### 实现代码
以下是一个完整的 Unity C# 方法,用于将 `DateTime` 转换为时间戳(以秒为单位):
```csharp
using System;
public class TimestampConverter
{
public static long ConvertDateTimeToTimestamp(DateTime dateTime)
{
// 定义时间戳的起始点(1970-01-01 UTC)
DateTime startTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
// 将输入的 DateTime 转换为 UTC 时间
DateTime utcTime = dateTime.ToUniversalTime();
// 计算时间差并转换为秒
TimeSpan timeSpan = utcTime - startTime;
return (long)timeSpan.TotalSeconds; // 返回时间戳(秒)
}
}
```
如果需要生成以毫秒为单位的时间戳,可以稍作修改:
```csharp
public static long ConvertDateTimeToTimestampMilliseconds(DateTime dateTime)
{
DateTime startTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
DateTime utcTime = dateTime.ToUniversalTime();
TimeSpan timeSpan = utcTime - startTime;
return (long)timeSpan.TotalMilliseconds; // 返回时间戳(毫秒)
}
```
#### 示例用法
假设需要将 `2023-10-01 12:30:45` 转换为时间戳:
```csharp
DateTime exampleDate = new DateTime(2023, 10, 1, 12, 30, 45);
long timestampInSeconds = TimestampConverter.ConvertDateTimeToTimestamp(exampleDate);
long timestampInMilliseconds = TimestampConverter.ConvertDateTimeToTimestampMilliseconds(exampleDate);
Console.WriteLine($"Timestamp in seconds: {timestampInSeconds}"); // 输出秒级时间戳
Console.WriteLine($"Timestamp in milliseconds: {timestampInMilliseconds}"); // 输出毫秒级时间戳
```
#### 注意事项
- 输入的 `DateTime` 必须包含时区信息,否则可能导致时间偏差。
- 如果需要考虑本地时区,可以使用 `TimeZoneInfo` 或 `ToLocalTime()` 方法进行转换[^1]。
---
阅读全文
相关推荐



















评论

王佛伟
2025.07.07
Unity中将日期转换为时间戳的方法清晰易懂,适合开发者快速实现功能。🍗

陌陌的日记
2025.06.22
注意事项提醒到位,有助于避免常见的时区问题。🦁

本本纲目
2025.06.01
提供了秒和毫秒两种时间戳转换方式,实用性很强。

销号le
2025.05.16
文档结构清晰,逻辑严谨,适合初学者和进阶者参考。

雨后的印
2025.04.25
代码示例详细,便于直接复制使用,节省开发时间。