C#:时间与时间戳的转换

1、将 DateTime 转换为 Unix 时间戳(秒)

cs 复制代码
public static long DateTimeToUnixTimestamp(DateTime dateTime)
{
    // 定义UTC纪元时间
    DateTime epochStart = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
    
    // 计算从UTC纪元时间到指定时间的总秒数
    TimeSpan timeSpan = dateTime.Subtract(epochStart);
    
    // 返回总秒数
    return (long)timeSpan.TotalSeconds;
}

2、将 Unix 时间戳 转换为 DateTime 并格式化为"年月日时分秒"

cs 复制代码
public static string UnixTimestampToDateTime(long timestamp, string format = "yyyy/MM/dd HH:mm:ss")
{
    // 定义UTC纪元时间
    DateTime epochStart = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
    
    // 使用时间戳添加到UTC纪元时间上,得到对应的DateTime对象
    DateTime dateTime = epochStart.AddSeconds(timestamp);
    
    // 转换为本地时间(如果需要的话)
    dateTime = dateTime.ToLocalTime();
    
    // 按照指定格式返回字符串
    return dateTime.ToString(format);
}

3、实例

cs 复制代码
// 创建一个DateTime对象
DateTime now = DateTime.Now;

// 将当前时间转换为Unix时间戳
long timestamp = DateTimeToUnixTimestamp(now);
Console.WriteLine($"Current Unix Timestamp: {timestamp}");

// 将Unix时间戳转换回DateTime并格式化输出
string formattedDate = UnixTimestampToDateTime(timestamp);
Console.WriteLine($"Formatted Date: {formattedDate}");
相关推荐
小羊没烦恼!3 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
神仙别闹3 天前
基于C#+MySQL实现(WinForm)个人聊天室软件
c#
伞伞悦读3 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
C语言小火车3 天前
C/C++ 为什么需要编译器?
开发语言·c++
霍霍的袁3 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio
kybs19913 天前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net
孙启超3 天前
【AI开发之Rust】第 11 课:智能指针与内部可变性
开发语言·后端·rust
此生决int3 天前
深入理解C++系列(20)——C++11(下)
开发语言·c++
CoderYanger3 天前
A.每日一题:835. 图像重叠
java·开发语言·程序人生·leetcode·面试·职场和发展·学习方法
伞伞悦读3 天前
【第37期】Python JSON 与配置详解:序列化、反序列化、嵌套结构和配置文件
开发语言·python·json