因为TimeZone在netcore中使用会提示过期,建议使用TimeZoneInfo,遂记录一下TimeZoneInfo用法。
1 /// <summary>
2 /// 将c# DateTime时间格式转换为Unix时间戳格式
3 /// </summary>
4 /// <param name="time">时间</param>
5 /// <returns>long</returns>
6 public static long ConvertDateTimeToLong(DateTime time)
7 {
8 DateTime startTime = TimeZoneInfo.ConvertTime(new DateTime(1970, 1, 1, 0, 0, 0, 0), TimeZoneInfo.Local);
9 long t = (time.Ticks - startTime.Ticks) / 10000; //除10000调整为13位
10 return t;
11 }
12
13 /// <summary>
14 /// 时间戳转为C#格式时间
15 /// </summary>
16 /// <param name=”timeStamp”></param>
17 /// <returns></returns>
18 public static DateTime ConvertLongToDateTime(long timeStamp)
19 {
20 DateTime dtStart = TimeZoneInfo.ConvertTime(new DateTime(1970, 1, 1, 0, 0, 0, 0), TimeZoneInfo.Local);
21 long lTime = timeStamp * 10000;
22 TimeSpan toNow = new TimeSpan(lTime);
23 return dtStart.Add(toNow);
24 }