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# - 学习总目录

C# - 系统类 - DateTime类的更多相关文章

  1. C# String类&Math类&DateTime类

    String类: String a = "abcdefghijklmnopqrstuvwxyz"; int length = a.length;  //获取字符串的长度: a = ...

  2. C#string类;math类;datetime类

    String类: .Length字符的长度   .Trim()去掉开头以及结尾的空格 .TrimStart()去掉字符串开头的空格 .TrimEnd()去掉字符串后面的空格   .ToUpper()全 ...

  3. 当碰到unix纪元问题时strtotime怎么转时间戳(DateTime类的使用方法)

    UNIX纪元时间又称POSIX时间/新纪元时间(Epoch Time):从协调世界时1970年1月1日0时0分0秒起到现在的总秒数,不包括闰秒.正值表示1970以後,负值则表示1970年以前. Uni ...

  4. C# - 系统类 - Type类

    Type类 ns:System Type类封装类型 它的实例提供一个特定类型的数据和函数成员的信息 可以使用Type类实例来调用类型的成员 一般将Type类用于反射 Type类的静态字段如下 Empt ...

  5. PHP中的DateTime类

    DataTime类跟date(),strtotime(),gmdate()等函数有相同的作用,都是用来处理日期和时间的,但DateTime类更加直观.方便, 所以在PHP5.2.0以后推荐使用Date ...

  6. 【2017-2-26】C#String类、Math类、DateTime类

    String类 黑色小扳手:属性      后面不带括号 紫色小箱子:方法      后面带小括号 1.字符串.Length;   字符串长度,返回int类型 字符串的长度 2.字符串.TrimSta ...

  7. runtime-给系统已有类添加属性

    在没有接触runtime之前,我们接触到的能给类进行扩展的方法有类目(category)和延展(extension)两种.类目(category)可以给系统已有类添加扩展方法但是不能添加属性,并且被添 ...

  8. string、math、random、datetime类

    1.string类 变量.Replace("想要替换掉的字符或字符串","转换后的字符或字符串");//替换 练习:判断邮箱格式是否正确            ...

  9. PHP使用DateTime类做时间日期到字符串转换

    PHP关于时间日期的处理不是很规范,简单就简单了,就是不知道输入的字符串是否能够正确转化为需要的DateTime类型. 面向对象的PHP应该使用DateTime类来做string和dateTime的转 ...

随机推荐

  1. Java JSON序列化杂谈

    在C#中序列化是比较容易的,如果不用第三方的类库,那么C#提供的两个对象也够我们使用,一般的操作是定义一个不含有方法的类,这个类里面定义了要序列化的对象的属性,因为我C#用的比较多,这里直接给出泛型, ...

  2. 搭建Git本地服务器

    搭建Git本地服务器 参考文章:http://www.ossxp.com/doc/git/gitolite.html 当前任务,学习中... 公司小范围用法: 服务器上做的: .在服务器上建立一个用户 ...

  3. hadoop2.2编程:MRUnit

    examples: Overview This document explains how to write unit tests for your map reduce code, and test ...

  4. jdbcTemplate 获取数据表结构

    jdbcTemplate 操作方法 /** *1.方法一: */ String sql = "select * from "+ tableName; //RowCountCallb ...

  5. 【转】VC中获取文件的相对路径和绝对路径

    原文网址:http://www.360doc.com/content/13/0703/16/3402399_297386231.shtml

  6. .Net 垃圾回收机制原理(一)

    英文原文:Jeffrey Richter 编译:赵玉开 链接:http://www.cnblogs.com/yukaizhao/archive/2011/11/23/dot_net_GC_1.html ...

  7. Axis2联接WCF(比较完整的版本)

    Axis2联接WCF(比较完整的版本) 分basicHttpBinding和wsHttpBinding两种情况: 一.basicHttpBinding比较简单一点,先来看看它所要求的HTTP包:POS ...

  8. ruby编程语言-学习笔记4(第4章 表达式和操作符)

    4.6.9 范围  Flip-Flops:  ..和... ..和... 操作符不是基于方法的,无法重定义.(优先级比较低) x+1 .. x*x   #可以认为是x+1 至 x*x 的范围 因为操作 ...

  9. Spring面试题汇总

    一.Spring最核心的功能是什么?使用Spring框架的最核心的原因是什么? Spring 框架中核心组件有三个:Core.Context 和 Beans.其中最核心的组件就是Beans, Spri ...

  10. 详解强大的SQL注入工具——SQLMAP

    1. 前言  Windows下的注入工具好的又贵,免费的啊D.明小子等又不好用,我们根本没必要花 时间去找什么破解的havij.pangolin什么的,特别是破解的工具很可能被绑了木马.其实 Linu ...