参考或转载至:MSDN、C#中比较常用的DateTime结构的使用方法、C#的TimeSpan介绍
1 DateTime 常见用法
1.1DateTime常见属性
序号 | 属性名 | 解释 |
---|---|---|
1 | Now | 获取一个 DateTime 对象,该对象设置为此计算机上的当前日期和时间,表示为本地时间。 |
2 | Date | 获取此实例的日期部分。 |
3 | Today | 获取当前日期。 |
4 | Day | 获取此实例所表示的日期为该月中的第几天。 |
5 | DayOfWeek | 获取此实例所表示的日期是星期几。 |
6 | DayOfYear | 获取此实例所表示的日期是该年中的第几天。 |
7 | Year | 获取此实例所表示日期的年份部分。 |
8 | Month | 获取此实例所表示日期的月份部分。 |
9 | Hour | 获取此实例所表示日期的小时部分。 |
10 | Minute | 获取此实例所表示日期的分钟部分。 |
11 | Second | 获取此实例所表示日期的秒部分。 |
12 | Millisecond | 获取此实例所表示日期的毫秒部分。 |
13 | Kind | 获取一个值,该值指示由此实例表示的时间是基于本地时间、协调世界时 (UTC),还是两者皆否。 |
14 | Ticks | 获取表示此实例的日期和时间的计时周期数。 |
15 | TimeOfDay | 获取此实例的当天的时间。 |
16 | UtcNow | 获取一个 DateTime 对象,该对象设置为此计算机上的当前日期和时间,表示为协调通用时间 (UTC)。 |
1.2DataTime常见方法
1.2.1 DateTime.Now
按年、月、日分别统计数据,可使用DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day获取。同理,当前的时分秒也可以这样的方式获取。还可以在当前时间加上一个段时间等操作。
static void Main(string[] args)
{
//实例化一个DateTime对象
DateTime newChina = new DateTime(1949, 10, 1, 12, 0, 0);
Console.WriteLine(newChina);
//使用DateTime.Now属性则可获得当前时间。
DateTime nowTime = DateTime.Now;
Console.WriteLine("Time Now is :{0},{1},{2}", nowTime.Year, nowTime.Month, nowTime.Day);
Console.WriteLine("Time Now2 is :{0},{1},{2},{3}", nowTime.Hour, nowTime.Minute, nowTime.Second,nowTime.Millisecond);
Console.WriteLine("3 Days after is:{0}", nowTime.AddDays(3));
Console.ReadLine();
}
结果:
1.2.2 ToString方法
DateTime的ToString方法有四种重载方式。其中一个重载方式允许传入String,这就意味着你可以将当前DateTime对象转换成等效的字符串形式。比如我们将当前时间输出,日期按yyyy-mm-dd格式,时间按hh:mm:ss格式。具体点这里
static void Main(string[] args)
{
Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd"));
Console.WriteLine(DateTime.Now.ToString("hh:mm:ss"));
}
2 TimeSpan常见用法
TimeSpan:表示一个时间间隔。
2.1 构造函数
①TimeSpan(Int64) 将 TimeSpan结构的新实例初始化为指定的刻度数。
(DateTime.Tick:是计算机的一个计时周期,单位是一百纳秒,即一千万分之一秒)
②TimeSpan(Int32, Int32, Int32) 将 TimeSpan结构的新实例初始化为指定的小时数、分钟数和秒数。
③TimeSpan(Int32, Int32, Int32, Int32) 将 TimeSpan结构的新实例初始化为指定的天数、小时数、分钟数和秒数。
④TimeSpan(Int32, Int32, Int32, Int32, Int32) 将新的 TimeSpan结构初始化为指定的天数、小时数、分钟数、秒数和毫秒数。
static void Main(string[] args)
{
TimeSpan ts1 = new TimeSpan(4, 20, 33); //将时间间隔ts1初始化为4小时20分33秒
TimeSpan ts2 = new TimeSpan(2, 10, 36, 45); //将时间间隔ts2初始化为2天10小时36分45秒
TimeSpan ts3 = new TimeSpan(6, 12, 56, 45, 23); //将时间间隔ts3初始化为6天12小时56分45秒23毫秒
Console.WriteLine(ts1);
Console.WriteLine(ts2);
Console.WriteLine(ts3);
}
结果为:
2.2 TimeSpan属性
序号 | 属性 | 解释 |
---|---|---|
1 | Days | 直接取出TimeSpan结构所表示的时间间隔的天数部分。 |
2 | Hours | 直接取出TimeSpan结构所表示的时间间隔的小时部分。 |
3 | Minutes | 直接取出TimeSpan结构所表示的时间间隔的分钟部分。 |
4 | Seconds | 直接取出TimeSpan结构所表示的时间间隔的秒数部分。 |
5 | Milliseconds | 直接取出TimeSpan结构所表示的时间间隔的毫秒部分。 |
6 | Ticks | 表示多少个一百纳秒(计算机的一个计时单位)。 |
7 | TotalDays | 将TimeSpan结构所表示的时间间隔换算成等效天数。 |
8 | TotalHours | 将TimeSpan结构所表示的时间间隔换算成等效小时数。 |
9 | TotalMinutes | 将TimeSpan结构所表示的时间间隔换算成等效分钟数。 |
10 | TotalSeconds | 将TimeSpan结构所表示的时间间隔换算成等效秒数数。 |
例子:
static void Main(string[] args)
{
TimeSpan ts4 = new TimeSpan(7, 18, 23, 41, 576);//将时间间隔ts4初始化为7天18小时23分41秒576毫秒(毫秒以千进制)
DateTime dt1 = new DateTime(2018, 1, 10, 20, 44, 0);
DateTime dt2 = DateTime.Now;
ts4 = dt2 - dt1; //重新给ts4赋值
Console.WriteLine("时间间隔为:{0}", ts4);
Console.WriteLine("时间间隔的天数部分:{0}", ts4.Days);
Console.WriteLine("时间间隔的小时部分:{0}", ts4.Hours);
Console.WriteLine("时间间隔的分钟部分:{0}", ts4.Minutes);
Console.WriteLine("时间间隔的秒部分:{0}", ts4.Seconds);
Console.WriteLine("时间间隔的毫秒部分:{0}", ts4.Milliseconds);
Console.WriteLine("时间间隔的等效刻度数(计时单位:一百纳秒):{0}", ts4.Ticks); //输出多少个一百纳秒:30天*24小时*60分*60秒*1000毫秒+03小时*60分*60秒*1000毫秒+09分*60秒*1000毫秒+48秒*1000毫秒+599毫秒=2603388599毫秒,因为刻度是一百纳秒(一千万分之一秒),毫秒为一千分之一秒,所以一毫秒等于1万乘以一百纳秒,所以最后等于2603388599毫秒*10000+5781(个一百纳秒)=26033885995781。
Console.WriteLine("时间间隔的等效天数:{0}", ts4.TotalDays);
Console.WriteLine("时间间隔的等效小时数:{0}", ts4.TotalHours);
Console.WriteLine("时间间隔的等效分钟数:{0}", ts4.TotalMinutes);
Console.WriteLine("时间间隔的等效秒数:{0}", ts4.TotalSeconds);
Console.WriteLine("时间间隔的等效毫秒数:{0}", ts4.TotalMilliseconds);
}
3 应用:计算程序运行时间
例子:计算10亿次加计算所需要的时间。
static void Main(string[] args)
{
DateTime t0 = DateTime.Now;
double num = 1;
for (int i = 1; i < 1000000000; i++)
{
num += i;
}
DateTime t1 = DateTime.Now;
TimeSpan deltT = t1 - t0;
Console.WriteLine("总计算时间:" + deltT.TotalMinutes + "s");
Console.WriteLine("总计算时间:" + deltT.TotalSeconds + "s");
Console.WriteLine("总计算时间:" + deltT.TotalMilliseconds + "m");
}
结果如下: