C# 实现js中getTime()的方法,时间与时间戳互转 13位

我们在Javascript中经常见到getTime方法,返回一个十三位的整数值。
<script>
alert((new Date()).getTime());
</script>
今天在老婆的lofter日志做导入的时候,发现lofter的日期字段也是这种类型的。
那么如何用C#实现这种十三位长整形和DateTime的互转呢?
首先,我们要先明白上述那个整形代表的含义?getTime方法返回一个整数值,这个整数代表了从 1970 年 1 月 1 日开始计算到 Date 对象中的时间之间的毫秒数。日期的范围大约是 1970 年 1 月 1 日午夜的前后各 285,616 年。负数代表 1970 年之前的日期。
下面看代码吧。
 
一、将十三位长整形时间戳转换为DateTime类型时间
public static System.DateTime ConvertIntDateTime(long d)
{
       System.DateTime time = System.DateTime.MinValue;
       System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
       time = startTime.AddMilliseconds(d);
       return time;
}
 
 
二、将C# DateTime时间格式转换为十三位整形时间戳格式
public static long ConvertDateTimeInt(System.DateTime time)
{
    System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0));
    long t = (time.Ticks - startTime.Ticks) / 10000;//除10000调整为13位
    return t;
}
评论 (0) 分享 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址