1、将 DateTime
转换为 Unix 时间戳(秒)
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
并格式化为“年月日时分秒”
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、实例
// 创建一个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}");