C#关于时间处理

一. DateTime

   在C#中,系统提供了许多关于时间处理的函数,我们可以通过System.DateTime.Now获取系统时间.当然也可以用DateTime类来创建时间对象.下面给了几个例子获取系统时间的方法.

 

 

  DateTime dt1 = new DateTime(2004, 10, 19);

  Console.WriteLine("dt1: {0}", dt1);

  DateTime dt2 = new DateTime(2004, 10, 19, 22, 47, 35);

  Console.WriteLine("dt2: {0}", dt2);

  DateTime dt3 = new DateTime(2004, 10, 19, 22, 47, 35, 259);

  Console.WriteLine("dt3: {0}", dt3);

  Stringtime1= System.DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss");

  Console.WriteLine(time1);

程序运行的结果截图是

 

  System.DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss")的意思是获取系统当前时间,并以年-月-日-时-分-秒的格式显示出来.

   再看下一个有管时间的类:Timespan,就字面的意思应该知道它的中文意思时间间隔.先看一个例子:

  TimeSpan oneweek = new TimeSpan(4, 12, 0, 0) + 

  new TimeSpan(2, 12, 0, 0);

  //(4, 12, 0, 0)中的参数分别表示

  days,hours,minutes,seconds.

  DateTime now = DateTime.Now;

  DateTime past = now - oneweek;

  Console.WriteLine(oneweek.ToString());

  Console.WriteLine(now.ToString());

  Console.WriteLine(past.ToString());

输出结果时

 

   .在当前的时间上加上X秒./分/时/天等操作.

  DateTime time1 = DateTime.Now;

  DateTime time2 = DateTime.Now.AddYears(10);

  DateTime time3 = DateTime.Now.AddMonths(11);

  DateTime time4 = DateTime.Now.AddDays(7);

  DateTime time5 = DateTime.Now.AddHours(12);

  Console.WriteLine(time1.ToString());

  Console.WriteLine(time2.ToString());

  Console.WriteLine(time3.ToString());

  Console.WriteLine(time4.ToString());

  Console.WriteLine(time5.ToString());

程序运行的结果截图是:

 

  DateTime time2 = DateTime.Now.AddYears(10)的意思是把当前时间上加上10年后再赋值给 time2;

   有关本地时间和标准UTC时间: UTC时间也就是格林威治标准时间.

  DateTime local=DateTime.Now;//本地时间

  Console.WriteLine("{0},{1},{2}",local.ToString(),local.Kind.ToString(),TimeZone.CurrentTimeZone.StandardName);

  DateTime utctime=DateTime.UtcNow;//协调通用时间;

  Console.WriteLine("{0},{1}",utctime.ToString(),utctime.Kind.ToString());

 

 

  二.有关时间格式的问题

   时间显示的格式可以是24或者12小时制的,还有其他方式的.

  DateTime local=DateTime.Now;//本地时间

  Console.WriteLine("the time is{0: hh:mm tt}",local);

  Console.WriteLine("Date is {0:ddd MMM dd, yyyy}", local);

  Console.WriteLine("{0:ddd MMM dd,yyyy}",local);

  Console.WriteLine("{0: HH :mm :ss tt}",local);

  Console.WriteLine("{0 :m}",local);

 

   TimeSpan在有关时间处理的过程有很多的作用,例如计算两个时间段之间的时间有多久,或者1个月后的今天是几号等.

  TimeSpan的构造函数有:

  TimeSpan oneweek = new TimeSpan(4, 12, 0, 0) + new TimeSpan(2, 12, 0, 0);

  那么oneweek就等于7天:4.5天加2.5天

  TimeSpan tp = new TimeSpan(1,50,20,10);//dd hh mm ss

  TimeSpan tp2 = new TimeSpan(1, 50, 20);// hh mm ss

  TimeSpan tp3 = new TimeSpan(1,1,1,1,1);//dd hh mm ss msms

  //(4, 12, 0, 0)中的参数分别表示days,hours,minutes,seconds.

  同时我们可以用TimeSpan的静态方法来给TimeSpan的实例对象赋值

  请看下面的例子:

  TimeSpan spa1 = TimeSpan.FromDays(10);

  TimeSpan spa2 = TimeSpan.FromHours(10);

  TimeSpan spa3 = TimeSpan.FromMinutes(44);

  TimeSpan spa4 = TimeSpan.FromSeconds(5);

  TimeSpan spa5 = TimeSpan.FromMilliseconds(55);

  TimeSpan spa6 = TimeSpan.FromTicks(200);//时间的刻度

  Console.WriteLine(spa1);

  Console.WriteLine(spa2);

  Console.WriteLine(spa3);

  Console.WriteLine(spa4);

  Console.WriteLine(spa5);

  Console.WriteLine(spa6);

输出结果是:

posted @ 2009-07-20 20:00  zhdonghu  阅读(515)  评论(0编辑  收藏  举报