Unity C# 时间戳转换工具

需积分: 50 8 下载量 23 浏览量 更新于2024-09-13 收藏 4KB TXT 举报
"该资源提供了一个Unity C#类,用于将时间戳转换为各种时间格式,特别是日期和小时格式。时间戳默认以秒为单位,若以毫秒为单位需先转换为秒。代码中包含了两个主要方法:ToTimeFormatString() 和 ToTimeFormatHour(),分别用于将时间戳转换为"年/月/日@时:分"格式和简化的时间格式。" 在Unity中,有时我们需要处理来自服务器或系统的时间数据,这些数据通常以时间戳的形式存在。时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不包括闰秒。这个类`Tools_TimeFormat`提供了方便的方法来将这样的时间戳转换为我们更易读的日期和时间格式。 1. `ToTimeFormatString(this long seconds)` 方法: 这个扩展方法接收一个以秒为单位的时间戳,并将其转换为"yyyy/MM/dd@HH:mm"格式的字符串。首先,它创建一个`DateTime`对象,表示从1970年1月1日到指定秒数的UTC时间,然后将其转换为本地时间。注意,此方法假设接收到的时间戳是有效的,即不会导致日期超出1970年到2030年的范围。如果时间戳导致的日期不在此范围内,它会将日期设置为2000年。最后,通过`ToString()`方法将日期时间格式化为指定的字符串格式。 2. `SecondsToDateTime(long seconds)` 方法: 这是一个辅助方法,它接受一个以秒为单位的时间戳,然后创建一个表示自1970年1月1日以来相应秒数的UTC `DateTime`对象。接着,将UTC时间转换为本地时间。这个方法用于内部计算,确保了正确的时间转换。 3. `ToTimeFormatHour(this long seconds)` 方法: 此方法类似`ToTimeFormatString`,但返回的时间格式可能不同,具体格式没有在提供的代码中给出。通常,这种方法可能会将时间戳转换为小时和分钟的组合,如"HH:mm"。 在实际开发中,这样的工具类对于处理时间相关的数据非常有用,尤其是在与服务器通信时需要将时间戳转换为用户可读的格式。开发者可以依据需要调整`ToTimeFormatHour`方法的实现,以满足特定的日期或时间格式要求。此外,注意时间戳的单位,如果从其他源获取时间戳,需要确保它们是以秒还是毫秒为单位,以便正确处理。