C#获取时间戳

什么是时间戳

时间戳默认是指Unix时间戳,从格林威治时间(UTC)1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

C# DateTime转换为Unix时间戳

.NET 4.6新方法#

只能在 .NET 4.6及更高版本里才能使用。

//包装成属性 方便调用
private long Timestamp
{
     get
     {
         return DateTimeOffset.Now.ToUnixTimeSeconds(); 
     }
 }

通用的老方法

private long Timestamp
 {
      get
      {
	      var startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
		return  (DateTime.Now - startTime).TotalSeconds; 
      }
  }

时间戳转C# DateTime

.NET 4.6 新方法

由时间戳转换的DateTimeOffset的时区默认是+00:00,此时我们需要转为本地时区,否则后续使用可能会有问题。
转为本地时区:DateTimeOffset.LocalDateTime。

示例代码如下:

//当前时间 2023/12/17 16:07:24
 DateTimeOffset dto=DateTimeOffset.FromUnixTimeSeconds(Timestamp);	// 1702800444
 var s1	= 	dto.DateTime.ToString();				//	2023/12/17 16:07:24
 var s2	=	dto.LocalDateTime.ToString();	//	2023/12/17 8:07:24

通用的老方法

long unixTimeStamp = 1702800444;
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
DateTime dt = startTime.AddSeconds(unixTimeStamp);
var s	=	$"{ dt:yyyy/MM/dd HH:mm:ss:ffff } ";	// 	s	=>	2023/12/17 16:07:24:0000
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值