Date、DateTime值的格式化扩展函数

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();
        }
    }

时间: 2024-10-31 01:58:36

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

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

转 数据库中的 date datetime timestamp的区别 DATETIME, DATE和TIMESTAMP类型是相关的.本文描述他们的特征,他们是如何类似的而又不同的. DATETIME类型用在你需要同时包含日期和时间信息的值时.MySQL检索并且以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'.(“支持”意味着尽管更早的值可能工作,但不能保证他们可以.) DAT

javascript Date format(js日期格式化)

方法一:这个很不错,好像是 csdn 的 Meizz 写的: // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) // 例子: // (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.4

String.Format,DateTime日期时间格式化集锦

DateTime dt = DateTime.Now;//2010年10月4日 17点05分 string str = ""; //str = string.Format("{0:y yy yyy yyyy}", dt); //10 10 2010 2010 //str = String.Format("{0:M MM MMM MMMM}", dt); //10 10 十月 十月 //str = String.Format("{0:d

String.Format,DateTime日期时间格式化

DateTime dt = DateTime.Now;//2010年10月4日 17点05分            string str = "";            //str = string.Format("{0:y yy yyy yyyy}", dt); //10 10 2010 2010            //str = String.Format("{0:M MM MMM MMMM}", dt); //10 10 十月 十月 

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 != '' "> date_time, </if> java.lang.IllegalArgumentException: invalid comparison: cn.hutool.core.date.DateTime and java.lang.String 去掉 and date_time != ' ' 就可以正

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

一.深入自动拆装箱 1.直接举例: public class D78_AutomaticUnpackingAndPacking{ public static void main(String[] args){ Integer i1 = new Integer(10); Integer i2 = new Integer(10); //这里不会自动进行拆箱 System.out.println(i1==i2);//false //比较两个Integer类型的数据是否相等,不能用“==" //Inte

mysql 存储 date , datetime问题,初步

1. java 里的 Date date = new Date()(java.util.Date) 得到  Thu Nov 03 22:19:43 CST 2016, 通过Timestamp stamp = new Timestamp(date.getTime()); 可以得到 2016-11-03 22:22:31.871. 后一种样式可以放在mysql datatime字段类型里 2. 如何通过mysql语言插入datetime类型

Hibernate存储date/datetime问题,解决java的date与mysql的datetime不兼容

主要原因是出在Hibernate的配置文件中. 症状 1. java文件类型java.util.Date,数据库类型datetime,Hibernate配置文件用date,存储进数据库的时间只有年月日,没有时分秒 2. java文件类型java.util.Date,数据库类型datetime,Hibernate配置文件用datetime,出错,提示:Could not determine type for: datetime 解决: java文件类型java.util.Date,数据库类型dat

一个JavaScript日期格式化扩展函数

我们都知道在Java和PHP语言中,有专门用于格式化日期对象的类和函数,例如Java中的DateFormat等等,通过这些类和函数,我们可以方便的将一个日期对象按照格式的要求输出为字符串,例如对于同一个日期2006年12月25日,需要的显示格式可能如下: 2010年12月25日,2010-12-25,12-25-2010等等. 在Javascript之中,日期对象是Date,那么如何将一个日期对象按照定制的格式进行输出呢? Date对象有有四个内置方法,用于输出为字符串格式,分别为:广德县能源局