/// /// 时间的扩展函数/// public static class DateTimeExtensions {/// /// 把UTC时间转换到客户端的本地时间/// /// utc时间/// public static DateTime ToClientTime(this DateTime time) {// 获取时区设置,指定了时区时使用时区转换var timezone = HttpContextUtils.GetData(LocaleUtils.TimeZoneKey);if (timezone != null) {time = DateTime.SpecifyKind(time, DateTimeKind.Utc);return TimeZoneInfo.ConvertTimeFromUtc(time, timezone);}// 没有时使用服务器的本地时间return time.ToLocalTime();}/// /// 把UTC时间转换到客户端的本地时间字符串/// 格式固定是 yyyy/MM/dd HH:mm:ss/// 推荐使用这个函数代替 ToClientTime().ToString(),可以不受语言影响/// /// utc时间/// public static string ToClientTimeString(this DateTime time) {return time.ToClientTime().ToString("yyyy/MM/dd HH:mm:ss");}/// /// 从客户端的本地时间转换到UTC时间/// /// 本地时间/// public static DateTime FromClientTime(this DateTime time) {// 获取时区设置,指定了时区时使用时区转换var timezone = HttpContextUtils.GetData(LocaleUtils.TimeZoneKey);if (timezone != null) {time = DateTime.SpecifyKind(time, DateTimeKind.Unspecified);return TimeZoneInfo.ConvertTimeToUtc(time, timezone);}// 没有时使用服务器的本地时间return time.ToUniversalTime();}/// /// 只保留时间到秒部分,清空毫秒/// /// 时间/// public static DateTime Truncate(this DateTime time) {return time.AddTicks(-(time.Ticks % TimeSpan.TicksPerSecond));}/// /// 返回Unix格式的时间戳/// 时间小于1970-1-1时会返回负值/// 传入的时间会使用ToUniversalTime转换成utc时间/// /// 时间/// public static TimeSpan ToTimestamp(this DateTime time) {return time.ToUniversalTime() - new DateTime(1970, 1, 1);}}