C# - 系统类 - DateTime类
DateTime类
ns:System
此类是一个结构 提供了访问和修改它所代表的时间
创建DateTime实例的几种方式
DateTime time = , , , , , ); Console.WriteLine(time.ToString("f"));//return 1969年7月28日 22:35 , , , , , , new CultureInfo("ZH-cn").Calendar).Ticks; DateTime time = new DateTime(ticks); Console.WriteLine(time.ToString("f"));//return 1969年7月28日 22:35 DateTime time = Convert.ToDateTime("1969年7月28日 22:35"); Console.WriteLine(time2.ToString("f"));//return 1969年7月28日 22:35 DateTime time = DateTime.Now;//return 当前日期 DateTime time = DateTime.Parse("1969年7月28日 22:35:05"); Console.WriteLine(time.ToString("f"));//return 1969年7月28日 22:35
DateTime的属性
Now静态属性
获取本机当前日期时间 返回一个DateTime结构实例
Ticks属性
获取表示当前的日期和时间的计时周期数 此值介于DateTime.MinValue.Ticks 和 DateTime.MaxValue.Ticks之间
Year属性
获取此实例的年部分
Month属性
获取此实例的月部分
Day属性
获取此实例的天是该月的第几天
Date属性
获取此实例的日期部分 时间部分也会返回 但只存储为0:00:00
Hour属性
获取此实例的小时部分
Minute属性
获取此实例的分钟部分
Second属性
获取此实例的秒数部分
Millisecond属性
获取此实例的毫秒数部分
DayOfWeek属性
获取此实例所表示的日期是星期几 返回的是英文 类型为DayOfWeek 可转换为数字
DateTime startDate = DateTime.Today.AddDays( - (int)DateTime.Today.DayOfWeek);//获取当前日期所在的星期中的星期一的日期 DateTime endDate = DateTime.Today.AddDays( - (int)DateTime.Today.DayOfWeek);//获取当前日期所在的星期中的星期天的日期
DayOfYear属性
获取此实例所表示的日期是该年中的第几天
TimeOfDay属性
获取此实例所表示的日期的时间部分
DaysInMonth属性
获取此实例是当月第几天
DateTime的方法
HasValue方法
测试当前日期是否是null 主要用于测试DateTime?类型的实例
public void test(DateTime? date) { if (date.HasValue) { } }
Add方法
将当前日期+参数指定的日期 参数可为负数 如:
DateTime.Now.AddDays() //加上100天 DateTime.Now.AddDays(-) //减去10天
另有:AddYears、AddDays、AddMonths、AddHours、AddMinutes、AddSeconds、AddMilliseconds方法 具有类似的行为
Subtract方法
从当前日期中减去参数指定的日期 返回一个Timespan实例 表示差值 你可以通过调用Timespan实例的属性来获取差值的天数、小时数等等
DateTime time=DateTime.Now; //计算两个日期的差值 TimeSpan timeSpan=time.Subtract(Convert.ToDateTime("2013-4-5")); Console.WriteLine("两个日期相差{0}天{1}小时{2}分{3}秒{4}毫秒",timeSpan.Days,timeSpan.Hours,timeSpan.Minutes,timeSpan.Seconds,timeSpan.Milliseconds);
结果如下
CompareTo方法
比较两个DateTime 如果当前日期大于参数日期 返回1 小于返回-1 等于返回0
ToShortDateString方法
将带有时间的日期转换为只有日期部分
ToShortTimeString
将带有日期的时间转换为只有时间部分
Equals方法
如果参数日期与当前日期相等 返回true 与CompareTo不同 后者返回数值 而此方法返回bool值
GetDateTimeFormats方法
获取日期的所有表示法 返回一个字符数组
DateTime time = DateTime.Parse("1969年7月28日 22:35:05"); foreach (var item in time.GetDateTimeFormats()) { Console.WriteLine(item); }
结果如下
// -- // -- // -- // 1969年7月28日 1969年7月28日, 星期一 星期一, 1969年7月28日 1969年7月28日 : 1969年7月28日 : 1969年7月28日 下午 : 1969年7月28日 下午 : 1969年7月28日, 星期一 : 1969年7月28日, 星期一 : 1969年7月28日, 星期一 下午 : 1969年7月28日, 星期一 下午 : 星期一, 1969年7月28日 : 星期一, 1969年7月28日 : 星期一, 1969年7月28日 下午 : 星期一, 1969年7月28日 下午 : 1969年7月28日 :: 1969年7月28日 :: 1969年7月28日 下午 :: 1969年7月28日 下午 :: 1969年7月28日, 星期一 :: 1969年7月28日, 星期一 :: 1969年7月28日, 星期一 下午 :: 1969年7月28日, 星期一 下午 :: 星期一, 1969年7月28日 :: 星期一, 1969年7月28日 :: 星期一, 1969年7月28日 下午 :: 星期一, 1969年7月28日 下午 :: // : // : // 下午 : // 下午 : -- : -- : -- 下午 : -- 下午 : : : 下午 : 下午 : // : // : // 下午 : // 下午 : -- : -- : -- 下午 : -- 下午 : : : 下午 : 下午 : // : // : // 下午 : // 下午 : -- : -- : -- 下午 : -- 下午 : : : 下午 : 下午 : // : // : // 下午 : // 下午 : // :: // :: // 下午 :: // 下午 :: -- :: -- :: -- 下午 :: -- 下午 :: :: :: 下午 :: 下午 :: // :: // :: // 下午 :: // 下午 :: -- :: -- :: -- 下午 :: -- 下午 :: :: :: 下午 :: 下午 :: // :: // :: // 下午 :: // 下午 :: -- :: -- :: -- 下午 :: -- 下午 :: :: :: 下午 :: 下午 :: // :: // :: // 下午 :: // 下午 :: 7月28日 7月28日 --28T22::05.0000000 --28T22::05.0000000 Mon, Jul :: GMT Mon, Jul :: GMT --28T22:: : : 下午 : 下午 : :: :: 下午 :: 下午 :: -- ::05Z 1969年7月28日 :: 1969年7月28日 :: 1969年7月28日 下午 :: 1969年7月28日 下午 :: 1969年7月28日, 星期一 :: 1969年7月28日, 星期一 :: 1969年7月28日, 星期一 下午 :: 1969年7月28日, 星期一 下午 :: 星期一, 1969年7月28日 :: 星期一, 1969年7月28日 :: 星期一, 1969年7月28日 下午 :: 星期一, 1969年7月28日 下午 :: 1969年7月 1969.7 1969年7月 1969.7
ToString方法
将当前日期转换为字符表示 可以提供特定的格式来表示日期 所有可选的格式如下
D 格式如 2013年4月5日
Y 格式如 2013年4月
M 格式如 4月5日
T 格式如 10:05:23
G 格式如 2003-09-23 14:48
S 格式如 2003-09-23T14:46:48
R 格式如 Tue, 23 Sep 2003 14:52:40 GMT
yy年MM月dd日 格式如 07年07月17日 13年05月10日 如果提供一个d 则单日没有前导0 两个dd有前导0
yy-MM-dd 格式如 13-04-25 如果提供一个d 则单日没有前导0 两个dd有前导0
ddd 日期中的星期几 如yy年MM月dd日ddd 格式如 69年07月28日周一
dddd 日期中的星期几的完整表示 如yy年MM月dd日ddd 格式如 69年07月28日星期一
h 12小时制的小时 单小时无前导零
hh 12小时制的小时 单小时有前导零
H 24小时制的小时 单小时无前导零
HH 24 小时制的小时 单小时有前导零
m 分钟 单分钟无前导零
mm 分钟 单分钟有前导零
s 秒 单秒无前导零
ss 秒 单秒有前导零
M 月份 单月没有前导零 如yy年M月dd日 格式如 69年7月28日
MM 月份 单月有前导零 如yy年MM月dd日 格式如 69年07月28日
MMM 月份 单月无前导零 且自动在表示月份的数字后+"月" 如yy年MMMdd日 格式如69年7月28日
MMMM 月份 中文月份表示 如yy年MMMMdd日 格式如69年七月28日
y 不包含纪元的年份 单年无前导零 如y年M月dd日 格式如69年7月28日
yy 不包含纪元的年份 单年有前导零 如yy年M月dd日 格式如69年7月28日
yyyy 包括纪元的四位数的年份 如yyyy年M月dd日 格式如1969年7月28日
格式化日期的快速参考
DateTime.Now.ToString("D"); //2007年4月24日 DateTime.Now.ToString("d"); //2007-4-24 DateTime.Now.ToString("F"); //2007年4月24日 16:30:15 DateTime.Now.ToString("f"); //2007年4月24日 16:30 DateTime.Now.ToString("G"); //2007-4-24 16:30:15 DateTime.Now.ToString("g"); //2007-4-24 16:30 DateTime.Now.ToString("T"); //16:30:15 DateTime.Now.ToString("t"); //16:30 DateTime.Now.ToString("U"); //2007年4月24日 8:30:15 DateTime.Now.ToString("u"); //2007-04-24 16:30:15Z DateTime.Now.ToString("r"); //Tue, 24 Apr 2007 16:30:15 GMT DateTime.Now.ToString("y"); //2007年4月 DateTime.Now.ToString("o"); //2007-04-24T15:52:19.1562500+08:00 DateTime.Now.ToString("s"); //2007-04-24T16:30:15 DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //2007-04-24 15:52:19 DateTime.Now.ToString("yyyy年MM月dd HH时mm分ss秒"); //2007年04月24 15时56分48秒 DateTime.Now.ToString("dddd, MMMM dd yyyy"); //星期二, 四月 24 2007 DateTime.Now.ToString("ddd, MMM d \"'\"yy"); //二, 四月 24 '07 DateTime.Now.ToString("dddd, MMMM dd"); //星期二, 四月 24 DateTime.Now.ToString("M/yy"); //4-07 DateTime.Now.ToString("dd-MM-yy"); //24-04-07
TimeSpan类
此类也是一个结构 它表示一个日期段 即Timespan代表的就是两个日期的差 它的实例可称为日期差对象
TimeSpan类的属性
Days属性
获取TimeSpan的天数部分
Hours属性
获取TimeSpan的小时部分
Minutes属性
获取TimeSpan的分钟部分
Seconds属性
获取TimeSpan的秒部分
Milliseconds属性
获取TimeSpan的毫秒部分
TimeOfDay属性
获取TimeSpan的时间部分
TotalHours属性
将TimeSpan转换为小时数
TotalMinutes属性
将TimeSpan转换为分钟数
Timespan类的方法
Compare静态方法
将参数1的日期差对象与参数2的日期差对象作比较 参数1>参数2 返回1 相等 返回0 参数1<参数2 返回-1
Subtract方法
计算当前日期差对象和参数日期差对象的差值 返回一个Timespan实例
DateTime t1 = Convert.ToDateTime("2010-5-26 8:10:10"); DateTime t2 = Convert.ToDateTime("2011-5-26 18:10:00"); TimeSpan tm1 = new TimeSpan(t1.Ticks); TimeSpan tm2 = new TimeSpan(t2.Ticks); TimeSpan tt = tm2.Subtract(tm1);
例子中使用了Ticks属性获取当前日期的计时周期数 就是一个差值 通过差值创建了Timespan实例 接着计算了两个日期差对象的差值 即t1到t2两个日期之间的差值
C# - 系统类 - DateTime类的更多相关文章
- C# String类&Math类&DateTime类
String类: String a = "abcdefghijklmnopqrstuvwxyz"; int length = a.length; //获取字符串的长度: a = ...
- C#string类;math类;datetime类
String类: .Length字符的长度 .Trim()去掉开头以及结尾的空格 .TrimStart()去掉字符串开头的空格 .TrimEnd()去掉字符串后面的空格 .ToUpper()全 ...
- 当碰到unix纪元问题时strtotime怎么转时间戳(DateTime类的使用方法)
UNIX纪元时间又称POSIX时间/新纪元时间(Epoch Time):从协调世界时1970年1月1日0时0分0秒起到现在的总秒数,不包括闰秒.正值表示1970以後,负值则表示1970年以前. Uni ...
- C# - 系统类 - Type类
Type类 ns:System Type类封装类型 它的实例提供一个特定类型的数据和函数成员的信息 可以使用Type类实例来调用类型的成员 一般将Type类用于反射 Type类的静态字段如下 Empt ...
- PHP中的DateTime类
DataTime类跟date(),strtotime(),gmdate()等函数有相同的作用,都是用来处理日期和时间的,但DateTime类更加直观.方便, 所以在PHP5.2.0以后推荐使用Date ...
- 【2017-2-26】C#String类、Math类、DateTime类
String类 黑色小扳手:属性 后面不带括号 紫色小箱子:方法 后面带小括号 1.字符串.Length; 字符串长度,返回int类型 字符串的长度 2.字符串.TrimSta ...
- runtime-给系统已有类添加属性
在没有接触runtime之前,我们接触到的能给类进行扩展的方法有类目(category)和延展(extension)两种.类目(category)可以给系统已有类添加扩展方法但是不能添加属性,并且被添 ...
- string、math、random、datetime类
1.string类 变量.Replace("想要替换掉的字符或字符串","转换后的字符或字符串");//替换 练习:判断邮箱格式是否正确 ...
- PHP使用DateTime类做时间日期到字符串转换
PHP关于时间日期的处理不是很规范,简单就简单了,就是不知道输入的字符串是否能够正确转化为需要的DateTime类型. 面向对象的PHP应该使用DateTime类来做string和dateTime的转 ...
随机推荐
- VC 无标题栏对话框移动(在OnLButtonDown里再次发送消息)
操作系统:Windows 7软件环境:Visual C++ 2008 SP1本次目的:实现无框移动 所谓的无标题栏对话框,是基于对话框的工程,对话框属性Border设置为None,对话框如下所示: 为 ...
- 总结一下SQL语句中引号(')、quotedstr()、('')、format()在SQL语句中的用法
总结一下SQL语句中引号(').quotedstr().('').format()在SQL语句中的用法 日期:2005年6月1日 作者:seasky212 总结一下SQL语句中引号(').quoted ...
- 解决win8.1右键菜单出现在左边
这个问题估计很少有人遇到,当在桌面上单击鼠标右键时,如果正常情况下,应该是在鼠标光标的右侧弹出来,除非右边的空间不够了,才在左侧弹出.但遇到故障,就是不论在桌面的哪里点右键,菜单都在左侧弹出,虽然不影 ...
- python 检测文件编码等
参考:http://my.oschina.net/waterbear/blog/149852 chardet模块,能够实现文本编码的检查, 核心代码: import chardet chardet.d ...
- HTML5标签一览
HTML5标签一览,点击下载 访问密码:1907
- hadoop2.2编程:自定义hadoop map/reduce输入文件切割InputFormat
hadoop会对原始输入文件进行文件切割,然后把每个split传入mapper程序中进行处理,FileInputFormat是所有以文件作为数据源的InputFormat实现的基类,FileInput ...
- android 欢迎界面的淡入效果
package com.example.spinnertest; import android.app.Activity; import android.content.Intent; import ...
- SharePoint Site Pages & Application Pages
转:http://www.wcode.net/plus/view.php?aid=1582071 SharePoint一个很重要的概念就是Site Pages和Application Pages.接触 ...
- 微信公共服务平台开发(.Net 的实现)2-------获得ACCESSTOKEN
成为了开发者之后微信平台会给您appid和secret,在订阅号中是没有的,所以因该申请一下服务号 有了ACCESSTOKEN才能做添加菜单,上传/下载图片等功能 private string Get ...
- jQuery与XML
jQuery与XML 快而强的遍历系统,华丽丽的选择器语法,这或许是jQuery 那么流行的原因.当然它还有详尽的文档.它主要是用来处理HTML的,但在这里妳会看到如何应用到XML. 使用jQuery ...