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}");
相关推荐
Scout-leaf16 小时前
WPF新手村教程(三)—— 路由事件
c#·wpf
用户2986985301419 小时前
程序员效率工具:Spire.Doc如何助你一键搞定Word表格排版
后端·c#·.net
mudtools2 天前
搭建一套.net下能落地的飞书考勤系统
后端·c#·.net
玩泥巴的2 天前
搭建一套.net下能落地的飞书考勤系统
c#·.net·二次开发·飞书
唐宋元明清21882 天前
.NET 本地Db数据库-技术方案选型
windows·c#
郑州光合科技余经理2 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
lindexi2 天前
dotnet DirectX 通过可等待交换链降低输入渲染延迟
c#·directx·d2d·direct2d·vortice
feifeigo1232 天前
matlab画图工具
开发语言·matlab
dustcell.2 天前
haproxy七层代理
java·开发语言·前端
norlan_jame2 天前
C-PHY与D-PHY差异
c语言·开发语言