c# datetime ticks mysql_C# DateTime 时间转换与时间戳

本文介绍了如何在C#中将DateTime转换为Unix时间戳,以及从Unix时间戳转换回DateTime。同时,还探讨了DateTime的Ticks属性,并展示了如何在不同时间单位之间进行转换,包括自定义时间戳格式的转换方法。
摘要由CSDN通过智能技术生成

Unix时间戳,从1970-1-1 0:0:0 UTC到现在的累计时间:秒数,毫秒数

public static DateTime UnixTimeStampStart = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);

DateTime的Ticks: 单位是 100 毫微秒,表示自 0001 年 1 月 1 日午夜 12:00:00 以来已经过的时间的以 100 毫微秒为间隔的间隔数。

可以通过转换DateTime到Ticks或秒,毫秒或自定义格式来生成时间戳。

转换DateTime为Ticks:

public static longDateTimeToTicks(DateTime time)

{long value =time.ToUniversalTime().Ticks;returnvalue;

}

转换Ticks为DateTime:

public static DateTime TicksToDateTime(longvalue)

{

DateTime time=TimeZoneInfo.ConvertTimeFromUtc(newDateTime(value),

TimeZoneInfo.Local);returntime;

}

注意:转换Ticks获得的DateTime时区为UTC,需要转换为当地时区。

DateTime转换为秒:

public static longDateTimeToTimeStamp(DateTime dateTime)

{return (long)(dateTime.ToUniversalTime() -UnixTimeStampStart).TotalSeconds;

}

使用传入的时间-之前定义的Unix时间戳开始时间,再获取时间差的累计秒。

秒转换为DateTime:

public static DateTime TimeStampToDateTime(longsec)

{returnUnixTimeStampStart.AddSeconds(sec).ToLocalTime();

}

也可使用同样方法转换为毫秒,由毫秒转换回DateTime。

自定义时间戳:

我自定义了一种时间戳,使用字符串格式化表示来定义时间戳。

比如对于:年-月-日_时-分-秒 的格式化转换定义:

public static stringDTToMyTS(DateTime dt)

{string ts = dt.ToString("yyyy-MM-dd_hh-mm-ss");returnts;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值