在日常开发中,时间戳与
DateTime的相互转换是非常高频的操作。不同的系统接口可能采用秒级、毫秒级时间戳或各种字符串格式。为了统一管理这些转换逻辑,我封装了一个简单实用的工具类,支持 Unix 秒/毫秒时间戳、ISO8601 字符串以及自定义格式的互转,并自动适配时区。以下是完整的实现源码与使用示例,可直接用于项目中。
🔧 工具类源码
📝 使用示例
输出结果示例:
⚙️ 设计要点说明
-
时区一致性:
-
内部统一基于 UTC 时间计算 Unix 时间戳,通过
ToUniversalTime()和TimeZoneInfo.ConvertTimeFromUtc确保在不同时区服务器上行为一致。
-
-
未指定 Kind 的处理:
-
当传入的
DateTime为Unspecified时,默认视为本地时间再进行 UTC 转换,减少歧义。
-
-
扩展性:
-
提供了常用格式(Unix 秒/毫秒、ISO8601)的快捷方法,同时保留
ParseByFormat供自定义格式扩展。
-
-
线程安全:
-
静态工具类,无状态,所有方法均为纯函数,可在多线程环境中安全调用。
-
🛠 适用场景
-
API 接口中时间字段序列化为时间戳或标准字符串;
-
日志文件名或目录按日期+时间戳命名;
-
跨平台/跨语言数据交换中的时间表示(优先推荐 ISO8601);
-
定时任务、缓存过期时间的时间计算。
此工具类不依赖第三方库,兼容 .NET Framework 4.5+ / .NET Core / .NET 5+,开箱即用。如果在 Linux 容器或不同时区环境运行,会自动适配本地时区偏移,无需额外配置。