public static class DateTimeExtensions
    {
        public static DateTime ToUtc(this DateTime time)
        {
            if (time.Kind == DateTimeKind.Utc)
            {
                return time;
            }
            else if (time.Kind == DateTimeKind.Local)
            {
                return time.ToUniversalTime();
            }
            else
            {
                return time.ToLocalTime().ToUniversalTime();
            }
        }

private static readonly DateTime s_maxDateTime = new DateTime(4000, 1, 1, 1, 1, 1, 1).ToUtc();
        public static DateTime MaxDateTime
        {
            get
            {
                return s_maxDateTime;
            }
        }

public static bool IsMaxDateTime(this DateTime time)
        {
            return time.Year == MaxDateTime.Year;
        }

public static DateTime? ToUtc(this DateTime? time)
        {
            return time.HasValue ? (DateTime?)time.Value.ToUtc() : null;
        }

public static string ToChineseDate(this DateTime time)
        {
            return time.ToString("yyyy-MM-dd");
        }

public static string ToChineseDate(this DateTime? time)
        {
            if (!time.HasValue)
                return string.Empty;
            return time.Value.ToString("yyyy-MM-dd");
        }

public static string ToChineseTime(this DateTime time)
        {
            return time.ToString("yyyy-MM-dd HH:mm");
        }

/// <summary>
        /// 转换成时间戳
        /// </summary>
        /// <param name="time"></param>
        /// <returns></returns>
        public static Int64 ToTimestamp(this DateTime time)
        {
            return (time.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
        }

public static string ToExpireString(this DateTime time)
        {
            var now = DateTime.Now;
            if (now < time)
                return string.Empty;

var offset = (now - time);

if (offset < new TimeSpan(0, 1, 0))
            {
                return "刚刚";
            }
            else if (offset < new TimeSpan(1, 0, 0))
            {
                return string.Format("{0}分钟", offset.Minutes);
            }
            else if (offset < new TimeSpan(1, 0, 0, 0))
            {
                return string.Format("{0}小时", offset.Hours);
            }
            else if (offset < new TimeSpan(7, 0, 0, 0))
            {
                return string.Format("{0}天", offset.Days);
            }
            else if (offset < new TimeSpan(30, 0, 0, 0))
            {
                return string.Format("{0}周", offset.Days / 7);
            }
            else if (offset < new TimeSpan(365, 0, 0, 0))
            {
                return string.Format("{0}个月", offset.Days / 30);
            }
            else
            {
                return time.ToChineseTime();
            }
        }

public static DateTime GetThisMonday(this DateTime value)
        {
            int dayofWeek = value.DayOfWeek == DayOfWeek.Sunday ? 7 : (int)value.DayOfWeek;
            return value.Date.AddDays((int)DayOfWeek.Monday - dayofWeek);
        }

public static DateTime GetTheMinTime(this DateTime time)
        {
            return DateTime.Parse(time.ToShortDateString() + " 00:00:00");
        }

public static DateTime GetTheMaxTime(this DateTime time)
        {
            return DateTime.Parse(time.ToShortDateString() + " 23:59:59");
        }

public static string HtmlEncode(this DateTime value, string format)
        {
            return value.ToString(format).HtmlEncode();
        }

public static string HtmlAttrEncode(this DateTime value, string format)
        {
            return value.ToString(format).HtmlAttrEncode();
        }

public static string UrlEncode(this DateTime value, string format)
        {
            return value.ToString(format).UrlEncode();
        }
    }

Date、DateTime值的格式化扩展函数的更多相关文章

  1. Mysql 数据库date, datetime类型设置0000-00-00默认值(default)报错问题

    Mysql 数据库date, datetime类型设置0000-00-00默认值报错问题 现象:MySQL5.7版本之后,date, datetime类型设置默认值"0000-00-00&q ...

  2. 转 数据库中的 date datetime timestamp的区别

    转 数据库中的 date datetime timestamp的区别 DATETIME, DATE和TIMESTAMP类型是相关的.本文描述他们的特征,他们是如何类似的而又不同的. DATETIME类 ...

  3. django datetime format 日期格式化

    django datetime format 日期格式化 www.jx-lab.com python 中 date,datetime,time对象都支持strftime(format)方法,但有一些区 ...

  4. MySQL数据库中的Date,DateTime,int,TimeStamp和Time类型的对比

    DATETIME 用在你需要同时包含日期和时间信息的值时.MySQL检索并且以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,支持的范围是'1000-01-01 00:00:00 ...

  5. 简述MySQL数据库中的Date,DateTime,TimeStamp和Time类型

    DATETIME类型 定义同时包含日期和时间信息的值时.MySQL检索并且以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,支持的范围是'1000-01-01 00:00:00' ...

  6. Mysql 实战关于date,datetime,timestamp类型使用

    最近在做一个项目 项目中 不同的小伙伴同时在不同的业务模块中用到了date,datetime,timestamp这三个类型 特别是datetime,timestamp这两个 如果不能理解到位  其实很 ...

  7. 设置Input标签Date默认值为当前时间

    需求:想设置Imput标签Date默认值为当前时间,通过JavaScript实现. <html> ...... <body> <input type="date ...

  8. mybatis的判定时间字段问题 java.lang.IllegalArgumentException: invalid comparison: cn.hutool.core.date.DateTime and java.lang.String

    今天听组员说: mybatis在3.30版本及以上判定时间时 <if test="date_time != null and date_time != '' "> da ...

  9. Java连载78-深入自动拆装箱、Date类和SimpleDateFormat格式化

    一.深入自动拆装箱 1.直接举例: public class D78_AutomaticUnpackingAndPacking{ public static void main(String[] ar ...

随机推荐

  1. cocos2d之Box2D详细说明 鼠标联合实现

    cocos2d之Box2D具体解释 鼠标关节实现 DionysosLai2014-5-7 我们常常要移动物理世界中的某个物体,例如说石头.木块等.假设我们直接改变这些物体的位置,让这些物体尾随我们手指 ...

  2. android 他们定义对话框

    创建一个布局文件 my_dialog.xml <?xml version="1.0" encoding="utf-8"?> <Relative ...

  3. Unix编程艺术札记版本

    这本书是一位面试官告诉我,.非常感谢他的忠告.面试的说明.我写后认为,足.一方面是面试的技巧.另一方面就是学习的方法. 阅读这本书非常享受,加上之前的积累,一些疑惑,另一些基础的不足,在这本书里找 ...

  4. zoj 2156 - Charlie&#39;s Change

    称号:拼布钱,表面值至1,5.10.25.寻求组成n表面值硬币的最大数目. 分析:dp,01背包.需要二元分割,除此以外TLE.使用每个硬币的数组记录数.轻松升级. 写了一个 多重背包的 O(NV)反 ...

  5. 11gR2 Database Services for &quot;Policy&quot; and &quot;Administrator&quot; Managed Databases (文件 ID 1481647.1)

    In this Document   _afrLoop=1459311711568804&id=1481647.1&displayIndex=6&_afrWindowMode= ...

  6. Could not drop object &#39;student&#39; because it is referenced by a FOREIGN KEY constraint

    1. Find foreign keys SELECT * FROM sys.foreign_keys WHERE referenced_object_id = object_id('Student' ...

  7. MSSQL基础

    前言 最近看到一些关于sql的汇总博客,觉得还是很不错的.于是心血来潮,也想写一篇自己对这方面的一些认识(主要是点出一下自己比较少用demo写的,一般都是直接改设计时的,例如建表.该字段名). 一.数 ...

  8. Servlet(五岁以下儿童)web.xml一些常用的配置

    (1)lode-on-startup,这Servlet该项目启动时它将被称为(从主要的电话init办法,为了安全起见,一般不应为Servlet建立URL制图).一些数据通常被用作前处理,或使用多线程建 ...

  9. T-SQL问题解决集锦——数据加解密(2)

    原文:T-SQL问题解决集锦--数据加解密(2) 问题三.如何让指定用户可以对数据表进行Truncate操作? Truncate在对大表全删除操作时,会明显比Delete语句更快更有效,但是因为它不需 ...

  10. T-SQL问题解决集锦——数据加解密

    原文:T-SQL问题解决集锦--数据加解密 以下代码已经在SQLServer2008上的示例数据库测试通过 问题一:如何为数据进行加密与解密,避免使用者窃取机密数据? 对于一些敏感数据,如密码.卡号, ...