DateTime类是.Net中用于处理时间类型数据的。

一、字段

MaxValue       表示 DateTime 的最大可能值。此字段为只读。
MinValue          表示 DateTime 的最小可能值。此字段为只读。

二、属性

Date         获取此实例的日期部分。
Day          获取此实例所表示的日期为该月中的第几天。
DayOfWeek      获取此实例所表示的日期是星期几。
DayOfYear      获取此实例所表示的日期是该年中的第几天。
Hour         获取此实例所表示日期的小时部分。
Kind         获取一个值,该值指示由此实例表示的时间是基于本地时间、协调世界时 (UTC),还是两者皆否。
Millisecond      获取此实例所表示日期的毫秒部分。
Minute        获取此实例所表示日期的分钟部分。
Month        获取此实例所表示日期的月份部分。
Now         静态,获取一个 DateTime 对象,该对象设置为此计算机上的当前日期和时间,表示为本地时间。
Second        获取此实例所表示日期的秒部分。
Ticks          获取表示此实例的日期和时间的计时周期数。
TimeOfDay       获取此实例的当天的时间。
Today        静态,获取当前日期。
UtcNow        静态,获取一个 DateTime 对象,该对象设置为此计算机上的当前日期和时间,表示为协调世界时 (UTC)。
Year         获取此实例所表示日期的年份部分。

        static void Main(string[] args)
{
Console.WriteLine(DateTime.MaxValue); //输出 9999/12/31 23:59:59
Console.WriteLine(DateTime.MinValue); //输出 0001/1/1 0:00:00 DateTime dt = DateTime.Now; //获取当前时间
Console.WriteLine(dt); //输出 2013/3/2 12:47:12 DateTime dt1 = DateTime.Today; //获取当前日期
Console.WriteLine(dt1); //输出 2013/3/2 0:00:00 DateTime dt2 = DateTime.UtcNow; //获取国际标准时间
Console.WriteLine(dt2); //输出 2013/3/2 4:50:14 Console.WriteLine(dt.Date); //输出 2013/3/2 0:00:00 DateTime的日期部分
Console.WriteLine(dt.Day); //输出 2 一个月的第几天,也就是今天是几号
Console.WriteLine(dt.DayOfWeek); //输出 Saturday 星期几
Console.WriteLine(dt.DayOfYear); //输出 61 今天是该年中的第几天
Console.WriteLine(dt.Hour); //输出 12 现在是几点
Console.WriteLine(dt.Kind); //输出 Local 指示此实例表示的时间是基于本地时间、协调世界时 (UTC),还是两者皆否。
Console.WriteLine(dt.Millisecond); //输出 720 毫秒部分
Console.WriteLine(dt.Minute); //输出 57 分钟部分
Console.WriteLine(dt.Month); //输出 3 月份
Console.WriteLine(dt.Second); //输出 27 秒数
Console.WriteLine(dt.Ticks); //输出 634978260185598529
Console.WriteLine(dt.TimeOfDay); //输出 13:01:47.3999343
Console.WriteLine(dt.Year); //输出 2013 Console.ReadKey();
}

三、方法

Add           将指定的 TimeSpan 的值加到此实例的值上。
AddDays         将指定的天数加到此实例的值上。
AddHours        将指定的小时数加到此实例的值上。
AddMilliseconds     将指定的毫秒数加到此实例的值上。
AddMinutes       将指定的分钟数加到此实例的值上。
AddMonths       将指定的月份数加到此实例的值上。
AddSeconds       将指定的秒数加到此实例的值上。
AddTicks          将指定的计时周期数加到此实例的值上。
AddYears         将指定的年份数加到此实例的值上。
Compare        对两个 DateTime 的实例进行比较,并返回一个指示第一个实例是早于、等于还是晚于第二个实例的整数。
CompareTo        已重载。 将此实例的值与指定的 DateTime 值相比较,并指示此实例是早于、等于还是晚于指定的 DateTime 值。
DaysInMonth       返回指定年和月中的天数。
Equals          已重载。 返回一个值,该值指示两个 DateTime 对象,或者一个 DateTime 实例和另一个对象或 DateTime 是否相等。
FromBinary       反序列化一个 64 位二进制值,并重新创建序列化的 DateTime 初始对象。
FromFileTime        将指定的 Windows 文件时间转换为等效的本地时间。
FromFileTimeUtc     将指定的 Windows 文件时间转换为等效的 UTC 时间。
FromOADate      返回与指定的 OLE 自动化日期等效的 DateTime。
GetDateTimeFormats   已重载。 将此实例的值转换为标准 DateTime 格式说明符支持的所有字符串表示形式。
GetHashCode       返回此实例的哈希代码。 (重写 ValueType..::.GetHashCode()()()。)
GetTypeCode       返回值类型 DateTime 的 TypeCode。
IsDaylightSavingTime  指示此 DateTime 实例是否在当前时区的夏时制范围内。
IsLeapYear           返回指定的年份是否为闰年的指示。
Parse          已重载。 将日期和时间的指定字符串表示形式转换为其等效的 DateTime。
ParseExact        已重载。 将日期和时间的指定字符串表示形式转换为其等效的 DateTime。字符串表示形式的格式必须与指定的格式完全匹配,否则会引发异常。
SpecifyKind       创建新的 DateTime 对象,该对象表示与指定的 DateTime 相同的时间,但是根据指定的
DateTimeKind 值的指示,指定为本地时间或协调世              界时 (UTC),或者两者皆否。
Subtract            已重载。 从此实例中减去指定的时间或持续时间。
ToBinary         将当前 DateTime 对象序列化为一个 64 位二进制值,该值随后可用于重新创建 DateTime 对象。
ToFileTime          将当前 DateTime 对象的值转换为 Windows 文件时间。
ToFileTimeUtc       将当前 DateTime 对象的值转换为 Windows 文件时间。
ToLocalTime       将当前 DateTime 对象的值转换为本地时间。
ToLongDateString    将当前 DateTime 对象的值转换为其等效的长日期字符串表示形式。
ToLongTimeString      将当前 DateTime 对象的值转换为其等效的长时间字符串表示形式。
ToOADate        将此实例的值转换为等效的 OLE 自动化日期。
ToShortDateString     将当前 DateTime 对象的值转换为其等效的短日期字符串表示形式。
ToShortTimeString     将当前 DateTime 对象的值转换为其等效的短时间字符串表示形式。
ToString         已重载。 将当前 DateTime 对象的值转换为其等效的字符串表示形式。
ToUniversalTime      将当前 DateTime 对象的值转换为协调世界时 (UTC)。
TryParse         已重载。 将日期和时间的指定字符串表示形式转换为其 DateTime 等效项,并返回一个指示转换是否成功的值。
TryParseExact       已重载。 将日期和时间的指定字符串表示形式转换为其等效的 DateTime。字符串表示形式的格式必须与指定的格式完全匹配。该方法返回一                 个指示转换是否成功的值。

示例:

static void Main(string[] args)
{
DateTime dt = DateTime.Now; // 2013/3/2 13:13:27
DateTime dt1 = dt.AddDays(10);
Console.WriteLine(dt1); // 2013/3/12 13:13:27 //留意到新的日期已经加了10天 DateTime dt2 = dt.AddHours(10);
Console.WriteLine(dt2); // 2013/3/2 23:13:27 //留意到新的日期已经加了10天
DateTime dt3 = dt.AddHours(12); //加多两个小时,让它超过24
Console.WriteLine(dt3); // 2013/3/3 1:13:27 //留到会自动增加一天 //下面5个都是类似 //AddMilliseconds 将指定的毫秒数加到此实例的值上。
//AddMinutes 将指定的分钟数加到此实例的值上。
//AddMonths 将指定的月份数加到此实例的值上。
//AddSeconds 将指定的秒数加到此实例的值上。
//AddYears 将指定的年份数加到此实例的值上。
DateTime dt4 = dt.AddDays(1);
int i = DateTime.Compare(dt,dt4); //第一个参数 早于 -1 等于 0 晚于1 第二个参数 静态版
Console.WriteLine(i); //输出 -1 int j = dt.CompareTo(dt4); //调用者比参数早 -1 等0 晚 1
Console.WriteLine(j); // 输出 -1 int days = DateTime.DaysInMonth(2011,2); //某年某月有多少天
Console.WriteLine(days); // 输出 28 long FTime = dt.ToFileTime();
Console.WriteLine(FTime); //输出 130066782813286694 windows文件时间 DateTime dt5 = DateTime.FromFileTime(130066782813286694); //windows文件时间转回DateTime
Console.WriteLine(dt5); //输出 2013/3/2 14:11:21 //以下几个都是类似的,不再多写
//FromBinary 反序列化一个 64 位二进制值,并重新创建序列化的 DateTime 初始对象。
//FromFileTimeUtc 将指定的 Windows 文件时间转换为等效的 UTC 时间。
//FromOADate 返回与指定的 OLE 自动化日期等效的 DateTime。
//ToBinary 将当前 DateTime 对象序列化为一个 64 位二进制值,该值随后可用于重新创建 DateTime 对象。
//ToFileTimeUtc 将当前 DateTime 对象的值转换为 Windows 文件时间。
//ToOADate 将此实例的值转换为等效的 OLE 自动化日期。 DateTime dt6 = dt.ToLocalTime();
Console.WriteLine(dt6); //本来就是本地时间 Console.WriteLine(dt.ToLongDateString()); //输出 2013年3月2日 短日期字符串表示形式
Console.WriteLine(dt.ToLongTimeString()); //输出 14:52:33 短时间字符串表示形式 Console.WriteLine(dt.IsDaylightSavingTime()); //False DateTime实例是否在当前时区的夏时制范围内
Console.WriteLine(DateTime.IsLeapYear(2013)); //False 是否是闰年 string str = "2012-12-12";
DateTime dt7 = DateTime.Parse(str); //此转换方法如果转换不成功会报错
Console.WriteLine(dt7); //输出 2012/12/12 0:00:00 DateTime dt8;
DateTime.TryParse(str,out dt8); //此方法的好处是,转换不成功也不会报错
Console.WriteLine(dt8); //输出 2012/12/12 0:00:00 string dateTimeString = "2008年09月12日 15点14分56秒";
DateTime dt9 = DateTime.ParseExact(dateTimeString, "yyyy年MM月dd日 HH点mm分ss秒", null); //按照指定的格式来转换为一个时间对象,这方法不错
Console.WriteLine(dt9); //输出 2008/9/12 15:14:56 DateTime dt10;
DateTime.TryParseExact(dateTimeString, "yyyy年MM月dd日 HH点mm分ss秒",null,System.Globalization.DateTimeStyles.None,out dt10); //按照指定的格式来转换为一个时间对象,这方法不错
Console.WriteLine(dt10); //输出 2008/9/12 15:14:56 Console.WriteLine(dt.ToUniversalTime()); //输出 2013/3/2 7:12:26 转换为国际时间 //yyyyMMdd hhmmss
Console.WriteLine(dt.GetDateTimeFormats('s')[0].ToString()); //输出 2013-03-02T15:25:26
Console.WriteLine(dt.GetDateTimeFormats('t')[0].ToString()); //输出 15:18
Console.WriteLine(dt.GetDateTimeFormats('y')[0].ToString()); //输出 2013年3月
Console.WriteLine(dt.GetDateTimeFormats('D')[0].ToString()); //输出 2013年3月2日
Console.WriteLine(dt.GetDateTimeFormats('D')[1].ToString()); //输出 2013年3月2日 ,星期六
Console.WriteLine(dt.GetDateTimeFormats('D')[2].ToString()); //输出 星期六,2013年3月2日
Console.WriteLine(dt.GetDateTimeFormats('M')[0].ToString()); //输出 3月2日
Console.WriteLine(dt.GetDateTimeFormats('f')[0].ToString()); //输出 2013年3月2日 15:36
Console.WriteLine(dt.GetDateTimeFormats('g')[0].ToString()); //输出 2013/3/2 15:36
Console.WriteLine(dt.GetDateTimeFormats('r')[0].ToString()); //输出 Sat, 02 Mar 2013 15:28:10 GTM Console.WriteLine(dt.ToString("yyyy*MM*dd")); //输出2013*03*02 ToString()方法被重写了 TypeCode c = dt.GetTypeCode();
Console.WriteLine(c.ToString()); //输出 DateTime DateTime dt11 = DateTime.SpecifyKind(dt, DateTimeKind.Local); //根据一个DateTime创建一个新的时间,枚举指定类型本地时间或协调世界时 (UTC),或者两者皆否。
Console.WriteLine(dt11); //输出 2013/3/2 15:32:33 //DateTime dt12 = dt.AddTicks(1000000000 * 60); //100纳秒为单位
//Console.WriteLine(dt12); DateTime dt13 = DateTime.Now.AddDays(10);
TimeSpan ts = dt13.Subtract(dt);
Console.WriteLine(ts); //输出 10.00:00:00...... TimeSpan ts1 = new TimeSpan(1,0,0,0); //创建一个TimeSpan对象,1天0时0分0秒
DateTime dt14 = dt.Add(ts1);
Console.WriteLine(dt14); //输出 2013/3/3 15:32:33 留意到日期里多了一天 DateTime dt15 = dt.Subtract(ts1);
Console.WriteLine(dt15); //输出 2013/3/1 15:32:33 留意到日期少了一天 Console.ReadKey();
}

四、实例,计算两个时间差

  下面给出根据两个DateTime计算时间差的实例:

  DateTime dt = DateTime.Now();
  TimeSpan ts = new TimeSpan(dt.Ticks);
  TimeSpan tsLast = new TimeSpan(dtLast.Ticks);
  TimeSpan tsDisparity = ts.Subtract(tsLast).Duration();

.Net时间运算 - DateTime类,TimeSpan类的更多相关文章

  1. C#时间处理--DateTime和TimeSpan

    DateTime dt = DateTime.Now; dt.ToString();//2005-11-5 13:21:25 dt.ToFileTime().ToString();//12775641 ...

  2. 输入某人出生日期(以字符串方式输入,如1987-4-1)使用DateTime和TimeSpan类,(1)计算其人的年龄;(2)计算从现在到其60周岁期间,总共多少天。

    http://blog.csdn.net/w92a01n19g/article/details/8764116 using System;using System.Collections.Generi ...

  3. 求计算两个时间的差(DateTime类和TimeSpan类)

    日期时间数据是项目设计过程中经常需要处理的信息,C#提供了DateTime类和TimeSpan类来处理日期时间数据.下面介绍说明Datetime类和TimeSpan类的使用 //初始化DateTime ...

  4. 生成二维码 加密解密类 TABLE转换成实体、TABLE转换成实体集合(可转换成对象和值类型) COOKIE帮助类 数据类型转换 截取字符串 根据IP获取地点 生成随机字符 UNIX时间转换为DATETIME\DATETIME转换为UNIXTIME 是否包含中文 生成秘钥方式之一 计算某一年 某一周 的起始时间和结束时间

    生成二维码 /// <summary>/// 生成二维码/// </summary>public static class QRcodeUtils{private static ...

  5. C#部分---arraylist集合、arraylist集合中的object数据转换成int类string类等;间隔时间的表示方法;

    ArrayList和Array的区别: 相同点:1.两者都实现了IList.ICollection.IEnumerable接口:       2.两者都可以使用证书索引访问集合中的元素,包括读取和赋值 ...

  6. TimeSpan类【转】

    TimeSpan ts1 = new TimeSpan(DateTime.Now.Ticks); //获取当前时间的刻度数 //执行某操作 ............................ . ...

  7. JDK中日期和时间的几个常用类浅析(四)

    java.time.Instant   java.time.Instant类对应的是时间线上的一个时间点.该类通过保存着从格林威治的起始时间(1970年一月一日零点零分)开始计算所经过的纳妙数来表示时 ...

  8. 时间日期相关类:Date类,DateFormat类&SimpleDateFormat类,Calendar类

    日期相关类 1.Date类:日期时间类 A.构造方法 Date(): 根据当前系统时间创建日期对象 ​ Date(Long time):根据传入的毫秒值时间创建日期对象 B.成员方法 Long get ...

  9. 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 确的浮点数运算,包括加减乘除和四舍五入。

    package com.minxinloan.utils; import java.math.BigDecimal; public class Arith { // 源文件Arith.java: /* ...

随机推荐

  1. 2017-02-23 错误信息:未在本地计算机上注册“Microsoft.ACE.oledb.12.0”提供程序。

    问题如题,解决办法:去 http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/Access ...

  2. EF-局部更新

    // ////1 public Task ReservedQuantity(long productId, long skuId, int reservedQuantity, long userId) ...

  3. Node的异步I/O

    node是单线程非阻塞异步I/O的模式. 阻塞I/O:完成整个数据获取的过程: 非阻塞I/O:不带数据,直接立即返回,要获取数据,还需通过文件描述符再次读取. node完成整个异步I/O的有事件循环. ...

  4. Spring使用proxool连接池 管理数据源

    一.Proxool连接池简介及其配置属性概述 Proxool是一种Java数据库连接池技术.是sourceforge下的一个开源项目,这个项目提供一个健壮.易用的连接池,最为关键的是这个连接池提供监控 ...

  5. 使用饿了么ui表单验证报错: [Element Warn][Form]model is required for validat

    [Element Warn][Form]model is required for validat 如文末的完整例子: 该提示说的是 form表单需要一个绑定一个 对象(使用:model=" ...

  6. /var/adm/wtmp文件太大该怎么办?

    /var/admin/wtmp文件记录所有用户的登陆信息,随着时间会增长到很大,/var/adm/wtmp文件太大该怎么办呢?先来看看/var/adm/wtmp文件的属性:testterm1:/#ls ...

  7. 浅谈MariaDB Galera Cluster架构

    MariaDB          MariaDB 是由原来 MySQL 的作者Michael Widenius创办的公司所开发的免费开源的数据库服务器,MariaDB是同一MySQL版本的二进制替代品 ...

  8. JQuery 提供了两种方式来阻止事件冒泡。

    JQuery 提供了两种方式来阻止事件冒泡. 方式一:event.stopPropagation(); $("#div1").mousedown(function(event){ ...

  9. bzoj 5403 Marshland

    $n \leq 50$ sol: 放一个在 $x$ 处拐弯的 $L$ 形石头相当于在水平和垂直方向上各选一个与 $x$ 相邻的点,全局不能重复选 最小化危险度,相当于满足这些限制的情况下石头盖住的点危 ...

  10. HDU4585 Shaolin (STL和treap)

    Shaolin HDU - 4585       Shaolin temple is very famous for its Kongfu monks.A lot of young men go to ...