unity 记录时间戳
时间: 2025-07-13 14:44:04 AIGC 浏览: 37
在 Unity 中记录时间戳通常可以通过 `DateTime.Now` 或 `Time.realtimeSinceStartup` 来实现。根据具体需求,可以选择不同的方式来获取和存储时间戳。
### 获取当前时间的时间戳
Unity 中可以使用 C# 的 `DateTime` 类来获取当前的日期和时间,并将其转换为时间戳(以秒或毫秒为单位)[^1]。
```csharp
/// <summary>
/// 获取当前时间的时间戳(以秒为单位)
/// </summary>
public static long GetCurrentTimestamp()
{
TimeSpan timeSpan = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0);
return (long)timeSpan.TotalSeconds;
}
/// <summary>
/// 获取当前时间的时间戳(以毫秒为单位)
/// </summary>
public static long GetCurrentTimestampInMilliseconds()
{
TimeSpan timeSpan = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0);
return (long)timeSpan.TotalMilliseconds;
}
```
通过这种方式获取的时间戳可用于日志记录、事件触发、数据持久化等场景。
### 使用 Time.realtimeSinceStartup 记录运行时时间戳
如果需要记录的是游戏运行过程中的时间戳,而不是系统时间,则可以使用 `Time.realtimeSinceStartup`。这个值表示从游戏启动开始经过的时间(以秒为单位),并且是浮点数类型,精度较高。
```csharp
float startTime = Time.realtimeSinceStartup;
// 在某个事件发生后计算经过的时间
float elapsedTime = Time.realtimeSinceStartup - startTime;
Debug.Log("经过的时间:" + elapsedTime.ToString("F2") + " 秒");
```
这种方法适合用于性能分析、计时器、关卡加载耗时统计等与游戏逻辑紧密相关的场景。
### 格式化时间戳为可读字符串
有时需要将时间戳转换为人类可读的格式。以下是一个将时间戳转换为 `yyyy-MM-dd HH:mm:ss` 格式的示例方法:
```csharp
public static string FormatTimestamp(long timestamp)
{
DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
DateTime targetTime = origin.AddSeconds(timestamp).ToLocalTime();
return targetTime.ToString("yyyy-MM-dd HH:mm:ss");
}
```
此方法可用于显示日志信息、保存记录到文件或数据库中等用途。
---
阅读全文
相关推荐



















