.net環(huán)境下轉(zhuǎn)換
/// <summary>
/// 時(shí)間擴(kuò)展
/// </summary>
public static class DateTimeExtension
{
/// <summary>
/// 1970.1.1 UTC時(shí)間
/// </summary>
private static DateTime Jan1st1970 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
/// <summary>
/// 日期轉(zhuǎn)換為時(shí)間戳(默認(rèn)為13位毫秒時(shí)間戳)
/// </summary>
/// <param name="dateTime">日期</param>
/// <param name="isMilli">是否毫秒</param>
/// <returns></returns>
public static long ConvertToTimeStamp(this DateTime dateTime, bool isMilli = true)
{
TimeSpan timeSpan = dateTime.AddHours(-8.0) - DateTimeExtension.Jan1st1970;
return (long)(isMilli ? timeSpan.TotalMilliseconds : timeSpan.TotalSeconds);
}
/// <summary>
/// 時(shí)間戳轉(zhuǎn)換為日期(時(shí)間戳單位:默認(rèn)毫秒)
/// </summary>
/// <param name="timeStamp">時(shí)間戳</param>
/// <param name="isMilli">是否毫秒時(shí)間戳</param>
/// <returns></returns>
public static DateTime ConvertToDateTime(this long timeStamp, bool isMilli = true)
{
return (isMilli ? DateTimeExtension.Jan1st1970.AddMilliseconds((double)timeStamp) : DateTimeExtension.Jan1st1970.AddSeconds((double)timeStamp)).AddHours(8.0);
}
}
.net core環(huán)境下
/// <summary>
/// Datetime擴(kuò)展
/// </summary>
public static class DateTimeExtension
{
/// <summary>
/// 日期轉(zhuǎn)換為時(shí)間戳(默認(rèn)為13位毫秒時(shí)間戳)
/// </summary>
/// <param name="dateTime">日期</param>
/// <param name="isMilli">是否毫秒</param>
/// <returns></returns>
public static long ConvertToTimeStamp(this DateTime dateTime, bool isMilli = true)
{
return isMilli ? new DateTimeOffset(dateTime).ToUnixTimeMilliseconds()
: new DateTimeOffset(dateTime).ToUnixTimeSeconds();
}
/// <summary>
/// 時(shí)間戳轉(zhuǎn)換為日期(時(shí)間戳單位:默認(rèn)毫秒)
/// </summary>
/// <param name="timeStamp">時(shí)間戳</param>
/// <param name="isMilli">是否毫秒時(shí)間戳</param>
/// <returns></returns>
public static DateTime ConvertToDateTime(this long timeStamp, bool isMilli = true)
{
return isMilli ? DateTimeOffset.FromUnixTimeMilliseconds(timeStamp).DateTime
: DateTimeOffset.FromUnixTimeSeconds(timeStamp).DateTime;
}
}