C#时间戳转换

基于.net的应用中,不会用到unix时间戳,当.net应用与其它应用(eg: php, java)交互时,就会用到unix时间戳。在项目中曾经用到过一次,用户通过web app提交数据并分享给安卓app时,如果时间间隔在一分钟内,数据才能算是真实有效,否则不予处理。还有asp.net开发中,经常会需要将对象序列化成json数据,js拼接成html,日期对象就会被序列化成如下形式:{“date”:”\/Date(1349839763373)\/”},js还无法识别,这时就不妨考虑下将日期转换成unix时间戳。

以下是C#下的日期与unix时间戳的相互转换:

复制代码
/// <summary>
/// 日期转换成unix时间戳
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
public static long DateTimeToUnixTimestamp(DateTime dateTime)
{
    var start = new DateTime(1970, 1, 1, 0, 0, 0, dateTime.Kind);
    return Convert.ToInt64((dateTime - start).TotalSeconds);
}

/// <summary>
/// unix时间戳转换成日期
/// </summary>
/// <param name="unixTimeStamp">时间戳(秒)</param>
/// <returns></returns>
public static DateTime UnixTimestampToDateTime(this DateTime target, long timestamp)
{
    var start = new DateTime(1970, 1, 1, 0, 0, 0, target.Kind);
    return start.AddSeconds(timestamp);
}
复制代码

说下这个日期(1970-1-1),现在计算机和一些电子设备时间的计算和显示是以距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量为标准的,有人就戏称英国的格林威治天文台是“时间开始的地方”。

 

附:

1. 各语言的时间戳转换:http://www.epochconverter.com/

2. unix时间介绍:http://en.wikipedia.org/wiki/Unix_time

posted @   清流鱼  阅读(37493)  评论(2编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示