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}");
相关推荐
执风挽^6 小时前
Python基础编程题2
开发语言·python·算法·visual studio code
Z9fish7 小时前
sse哈工大C语言编程练习20
c语言·开发语言·算法
萧鼎7 小时前
Python 包管理的“超音速”革命:全面上手 uv 工具链
开发语言·python·uv
Anastasiozzzz7 小时前
Java Lambda 揭秘:从匿名内部类到底层原理的深度解析
java·开发语言
缺点内向7 小时前
C#: 告别繁琐!轻松移除Word文档中的文本与图片水印
c#·自动化·word·.net
刘琦沛在进步8 小时前
【C / C++】引用和函数重载的介绍
c语言·开发语言·c++
机器视觉的发动机8 小时前
AI算力中心的能耗挑战与未来破局之路
开发语言·人工智能·自动化·视觉检测·机器视觉
HyperAI超神经8 小时前
在线教程|DeepSeek-OCR 2公式/表格解析同步改善,以低视觉token成本实现近4%的性能跃迁
开发语言·人工智能·深度学习·神经网络·机器学习·ocr·创业创新
R_.L8 小时前
【QT】常用控件(按钮类控件、显示类控件、输入类控件、多元素控件、容器类控件、布局管理器)
开发语言·qt
喵叔哟8 小时前
06-ASPNETCore-WebAPI开发
服务器·后端·c#