Unity 时间戳转 时间
时间: 2023-11-24 13:59:13 浏览: 47
可以使用Unity的Time类中的方法来将时间戳转换为日期时间。
例如,下面的代码将Unix时间戳转换为可读的日期时间:
```csharp
using System;
public class TimeStampConverter : MonoBehaviour
{
public long timeStamp = 1616615175; // Unix timestamp in seconds
void Start()
{
DateTime dateTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
dateTime = dateTime.AddSeconds(timeStamp).ToLocalTime();
Debug.Log(dateTime.ToString("yyyy-MM-dd HH:mm:ss"));
}
}
```
在这个例子中,我们首先创建了一个DateTime对象,它代表了1970年1月1日0时0分0秒(UTC时间)。
然后,我们使用AddSeconds方法将时间戳添加到此DateTime对象中,并使用ToLocalTime方法将其转换为本地时间。
最后,我们使用ToString方法将DateTime对象格式化为可读的日期时间字符串。在这个例子中,我们使用了"yyyy-MM-dd HH:mm:ss"格式,它代表年月日小时分钟秒的顺序。
输出结果将是:2021-03-25 15:19:35。
相关问题
Unity 时间戳转换
Unity中时间戳转换可以通过以下代码实现:
```csharp
// 将Unix时间戳转换为DateTime类型
public static DateTime UnixTimeStampToDateTime(double unixTimeStamp)
{
// Unix起始日期为1970年1月1日
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
// 将Unix时间戳转换为DateTime类型
return startTime.AddSeconds(unixTimeStamp);
}
// 将DateTime类型转换为Unix时间戳
public static double DateTimeToUnixTimeStamp(System.DateTime dateTime)
{
// Unix起始日期为1970年1月1日
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
// 计算时间差,即为Unix时间戳
return (dateTime - startTime).TotalSeconds;
}
```
使用方法如下:
```csharp
// 将当前时间转换为Unix时间戳
double timeStamp = DateTimeToUnixTimeStamp(DateTime.Now);
// 将Unix时间戳转换为DateTime类型
DateTime dateTime = UnixTimeStampToDateTime(timeStamp);
```
其中,`DateTime.Now`获取当前时间,可以根据需要替换为其他时间。
unity 时间戳使用案例
在Unity中,可以通过System.DateTime.Now.Ticks获取当前时间的时间戳。这个时间戳是一个长整型数字,表示自1970年1月1日0时0分0秒(格林尼治标准时间)以来的毫秒数。
以下是一个使用时间戳的示例代码,用于记录玩家最后一次登录时间:
```csharp
// 获取当前时间戳
long timestamp = System.DateTime.Now.Ticks / 10000;
// 存储时间戳到本地
PlayerPrefs.SetLong("LastLoginTimestamp", timestamp);
// 读取本地存储的时间戳
long lastLoginTimestamp = PlayerPrefs.GetLong("LastLoginTimestamp", 0);
// 将时间戳转换为日期时间格式
System.DateTime lastLoginTime = new System.DateTime(1970, 1, 1, 0, 0, 0, System.DateTimeKind.Utc);
lastLoginTime = lastLoginTime.AddMilliseconds(lastLoginTimestamp).ToLocalTime();
// 输出最后一次登录时间
Debug.Log("Last login time: " + lastLoginTime.ToString());
```
在上面的示例代码中,我们使用PlayerPrefs类将时间戳存储到本地,以便下次游戏启动时可以读取并显示最后一次登录时间。首先,我们获取当前时间戳,然后使用SetLong方法将其存储到本地。接着,我们使用GetLong方法读取存储的时间戳,并将其转换为日期时间格式,最后输出最后一次登录时间。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)