C#【有与无】日期处理

C# DateTime与时间戳的相互转换,包括JavaScript时间戳和Unix的时间戳

时间戳

JavaScript时间戳:

是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数。

Unix时间戳:

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

可以看出JavaScript时间戳总毫秒数,Unix时间戳是总秒数。

比如同样是的 2016/11/03 12:30:00 ,转换为JavaScript时间戳为 1478147400000;转换为Unix时间戳为 1478147400。

JavaScript时间戳相互转换

C# DateTime转换为JavaScript时间戳

// 当地时区
System.DateTime startTime = 
    TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
// 相差毫秒数
long timeStamp = (long)(DateTime.Now - startTime).TotalMilliseconds; 
System.Console.WriteLine(timeStamp);

JavaScript时间戳转换为C# DateTime

long jsTimeStamp = 1478169023479;
// 当地时区
System.DateTime startTime = 
    TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); 
DateTime dt = startTime.AddMilliseconds(jsTimeStamp);
System.Console.WriteLine(dt.ToString("yyyy/MM/dd HH:mm:ss:ffff"));

Unix时间戳相互转换

C# DateTime转换为Unix时间戳

// 当地时区
System.DateTime startTime = 
    TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); 
// 相差秒数
long timeStamp = (long)(DateTime.Now - startTime).TotalSeconds; 
System.Console.WriteLine(timeStamp);

Unix时间戳转换为C# DateTime

long unixTimeStamp = 1478162177;
// 当地时区
System.DateTime startTime = 
    TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); 
DateTime dt = startTime.AddSeconds(unixTimeStamp);
System.Console.WriteLine(dt.ToString("yyyy/MM/dd HH:mm:ss:ffff"));

日期格式化

符号说明语法示例(2016-05-09 13:09:55:2350)
yy年份后两位DateTime.Now.ToString("yy")16
yyyy4位年份DateTime.Now.ToString("yyyy")2016
MM两位月份;单数月份前面用0填充DateTime.Now.ToString("MM")05
dd日数DateTime.Now.ToString("dd")09
ddd周几DateTime.Now.ToString("ddd")周一
dddd星期几DateTime.Now.ToString("dddd")星期一
hh12小时制的小时数DateTime.Now.ToString("hh") 01
HH24小时制的小时数DateTime.Now.ToString("HH")13
mm分钟数DateTime.Now.ToString("mm")09
ss秒数DateTime.Now.ToString("ss")55
ff毫秒数前2位DateTime.Now.ToString("ff")23
fff毫秒数前3位DateTime.Now.ToString("fff")235
ffff毫秒数前4位DateTime.Now.ToString("ffff")2350
分隔符

可使用分隔符来分隔年月日时分秒。

包含的值可为:-、/、:等非关键字符

DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); // => 2016-05-09 13:09:55:2350

DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss:ffff"); // => 2016/05/09 13:09:55:2350

DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss:ffff dddd"); // => 2016/05/09 13:09:55:2350 星期一

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

琴 韵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值