C# unix时间戳转换

场景:由于业务需要和java 开发的xxx系统对接日志,xxx系统中用“1465195479100” 来表示时间,C# 里面需要转换做一下逻辑处理,见代码段。

C#获取的unix时间戳是10位,原因是 java采用毫秒计算,而C#采用秒,获取unix时间戳的代码中 乘以1000就是这个原因。

C#中直接获取时间戳, DateTime.Now.Ticks;  ( DateTime.Now.Ticks;是从0001 年 1 月 1 日午夜 12:00:00 开始,单位是微秒。

/// <summary>  
/// 获取时间戳  13位
/// </summary>  
/// <returns></returns>  
public static long GetTimeStamp()
{
  TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
  return Convert.ToInt64(ts.TotalSeconds * 1000);
}
/// <summary>
/// 将时间戳转换为日期类型,并格式化
/// </summary>
/// <param name="longDateTime"></param>
/// <returns></returns>
private static string LongDateTimeToDateTimeString(string longDateTime)
{
    //用来格式化long类型时间的,声明的变量
    long unixDate = long.Parse(longDateTime);
    DateTime start = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
    DateTime date = start.AddMilliseconds(unixDate).ToLocalTime();    
 
    return date.ToString("yyyy-MM-dd HH:mm:ss");
}
/// <summary> 
/// 获取时间戳 10位
/// </summary> 
/// <returns></returns> 
public static long GetTimeStampTen()
{
  return (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
}

 

转载于:https://my.oschina.net/jokeny/blog/1586822

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值