DateTime转long:
public static long GetDateLong(object time) { DateTime epoc = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); TimeSpan delta = new TimeSpan(); if (time is DateTime) delta = ((DateTime)time).Subtract(epoc); else if (time is string) delta = DateTime.Parse(time.ToString()).Subtract(epoc); else throw new ArgumentOutOfRangeException("时间格式错误.1"); if (delta.TotalMilliseconds < 0) throw new ArgumentOutOfRangeException("时间格式错误.2"); long ticks = (long)delta.TotalMilliseconds; return ticks; }
long转DateTime:
public static DateTime GetDateFromLong(long ticks) { var date = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); date = date.AddMilliseconds(ticks); return date; }
网上常见错误:
DateTime epoc = new DateTime(1970, 1, 1);