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();
}
}
Date、DateTime值的格式化扩展函数的更多相关文章
- Mysql 数据库date, datetime类型设置0000-00-00默认值(default)报错问题
Mysql 数据库date, datetime类型设置0000-00-00默认值报错问题 现象:MySQL5.7版本之后,date, datetime类型设置默认值"0000-00-00&q ...
- 转 数据库中的 date datetime timestamp的区别
转 数据库中的 date datetime timestamp的区别 DATETIME, DATE和TIMESTAMP类型是相关的.本文描述他们的特征,他们是如何类似的而又不同的. DATETIME类 ...
- django datetime format 日期格式化
django datetime format 日期格式化 www.jx-lab.com python 中 date,datetime,time对象都支持strftime(format)方法,但有一些区 ...
- MySQL数据库中的Date,DateTime,int,TimeStamp和Time类型的对比
DATETIME 用在你需要同时包含日期和时间信息的值时.MySQL检索并且以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,支持的范围是'1000-01-01 00:00:00 ...
- 简述MySQL数据库中的Date,DateTime,TimeStamp和Time类型
DATETIME类型 定义同时包含日期和时间信息的值时.MySQL检索并且以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,支持的范围是'1000-01-01 00:00:00' ...
- Mysql 实战关于date,datetime,timestamp类型使用
最近在做一个项目 项目中 不同的小伙伴同时在不同的业务模块中用到了date,datetime,timestamp这三个类型 特别是datetime,timestamp这两个 如果不能理解到位 其实很 ...
- 设置Input标签Date默认值为当前时间
需求:想设置Imput标签Date默认值为当前时间,通过JavaScript实现. <html> ...... <body> <input type="date ...
- 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 ...
- Java连载78-深入自动拆装箱、Date类和SimpleDateFormat格式化
一.深入自动拆装箱 1.直接举例: public class D78_AutomaticUnpackingAndPacking{ public static void main(String[] ar ...
随机推荐
- virtio-netdev 发送数据包
在前面几文中已经大体介绍了virtio的重要组成,包含virtio net设备的创建,vring的创建,与virtio设备的交互方式.我们就从网络数据包的发送角度来看下virtio的详细使用流程. [ ...
- 区域及分离、Js压缩、css、jquery扩展
后台管理区域及分离.Js压缩.css.jquery扩展 本系列目录:ASP.NET MVC4入门到精通系列目录汇总 有好一段时间没更新博文了,最近在忙两件事:1.看书,学习中...2.为公司年会节目做 ...
- jquery处理页面元素
处理父级页面中的元素 $(parent.document).find('#hidSendPerson').val(val);$(parent.document).find('#btnGo').clic ...
- Android自带样式
Android系统自带样式: android:theme="@android:style/Theme.Dialog" 将一个Activity显示为对话框模式 android:the ...
- or1200中IMMU分析(续)
下面内容摘自<步步惊芯--软核处理器内部设计分析>一书 2 IMMU中的特殊寄存器 OR1200处理器中的IMMU包括第2组特殊寄存器,如表10.1所看到的. ITLBW0MRx是指令TL ...
- 单链表---java实现
单链表优点:1.不需要预先给出元素个数. 2.单链表插入删除时不需要移动数据元素. 单链表缺点:1.每个节点有指针,空间利用率低. 2.单链表不支持随机读取数据. Node.java package ...
- ExtJS4 表格的嵌套 rowExpander
今天做一个grid,里面的数据须要带明细,思来想去还是搞个表格嵌套吧!看下图 对于grid中每一条记录点击左边的+号能展开一个明细的子表格 全部数据包含列名均从后台获得,子表格的数据临时在本地以做測试 ...
- POJ 3280 Cheapest Palindrome (DP)
Description Keeping track of all the cows can be a tricky task so Farmer John has installed a sys ...
- uva 10817 - Headmaster's Headache ( 状态压缩dp)
本文出自 http://blog.csdn.net/shuangde800 题目链接: 点击打开链接 题目大意 某校有n个教师和m个求职者,已知每人的工资和能教的课程集合,要求支付最少的工资使得每 ...
- Decorator模式设计模式
装饰者模式定义:动态地将责任附加到对象上. 若要扩展功能.装饰者提供了比继续更有弹性的替代方案. 简单定义:包装一个对象.以提供新的行为. 装饰者模式能够有效应对类爆炸问题. OO原则: 对扩展开放, ...