zoukankan      html  css  js  c++  java
  • 一个时间的扩展函数帮助类

    /// <summary>
        /// 时间的扩展函数
        /// </summary>
        public static class DateTimeExtensions {
            /// <summary>
            /// 把UTC时间转换到客户端的本地时间
            /// </summary>
            /// <param name="time">utc时间</param>
            /// <returns></returns>
            public static DateTime ToClientTime(this DateTime time) {
                // 获取时区设置,指定了时区时使用时区转换
                var timezone = HttpContextUtils.GetData<TimeZoneInfo>(LocaleUtils.TimeZoneKey);
                if (timezone != null) {
                    time = DateTime.SpecifyKind(time, DateTimeKind.Utc);
                    return TimeZoneInfo.ConvertTimeFromUtc(time, timezone);
                }
                // 没有时使用服务器的本地时间
                return time.ToLocalTime();
            }
    
            /// <summary>
            /// 把UTC时间转换到客户端的本地时间字符串
            /// 格式固定是 yyyy/MM/dd HH:mm:ss
            /// 推荐使用这个函数代替 ToClientTime().ToString(),可以不受语言影响
            /// </summary>
            /// <param name="time">utc时间</param>
            /// <returns></returns>
            public static string ToClientTimeString(this DateTime time) {
                return time.ToClientTime().ToString("yyyy/MM/dd HH:mm:ss");
            }
    
            /// <summary>
            /// 从客户端的本地时间转换到UTC时间
            /// </summary>
            /// <param name="time">本地时间</param>
            /// <returns></returns>
            public static DateTime FromClientTime(this DateTime time) {
                // 获取时区设置,指定了时区时使用时区转换
                var timezone = HttpContextUtils.GetData<TimeZoneInfo>(LocaleUtils.TimeZoneKey);
                if (timezone != null) {
                    time = DateTime.SpecifyKind(time, DateTimeKind.Unspecified);
                    return TimeZoneInfo.ConvertTimeToUtc(time, timezone);
                }
                // 没有时使用服务器的本地时间
                return time.ToUniversalTime();
            }
    
            /// <summary>
            /// 只保留时间到秒部分,清空毫秒
            /// </summary>
            /// <param name="time">时间</param>
            /// <returns></returns>
            public static DateTime Truncate(this DateTime time) {
                return time.AddTicks(-(time.Ticks % TimeSpan.TicksPerSecond));
            }
    
            /// <summary>
            /// 返回Unix格式的时间戳
            /// 时间小于1970-1-1时会返回负值
            /// 传入的时间会使用ToUniversalTime转换成utc时间
            /// </summary>
            /// <param name="time">时间</param>
            /// <returns></returns>
            public static TimeSpan ToTimestamp(this DateTime time) {
                return time.ToUniversalTime() - new DateTime(1970, 1, 1);
            }
        }
  • 相关阅读:
    Jquery判断数组中是否包含某个元素$.inArray()的用法
    localStorage,sessionStorage,cookie使用场景和区别
    解决发送邮件在本地测试成功,在腾讯服务器上测试失败的问题
    phpStudy安装教程
    使用phpStudy运行伊人集项目
    使用phpStudyy运行tipask
    linux sudo命令
    PHP 判断数组是否为空的5大方法
    校验两次密码一致的js代码
    一个漂亮的php验证码类
  • 原文地址:https://www.cnblogs.com/x-poior/p/5388818.html
Copyright © 2011-2022 走看看