Asp.net 时间操作(收集整理)
一、ASP.NET时间操作
二、Asp.net 时间操作基类(短日期,长日期,时间差)
![](/Images/OutliningIndicators/ContractedBlock.gif)
三、 关于Access 是Date()类型字段的数据取值:
1、Label1.Text= Convert.toDate(dr1["字段"]).ToString("yyyy-MM-dd");
2、Label1.Text = System.DateTime.Now.ToShortDateString();
ToShortDateString的输出格式和你服务器的时间格式设定有关的,输出的不一定是yyyy-MM-dd格式。
你在控制面板改一下就知道了。
转化成字符串
string str = dt.ToString(); //这是最直接的转化方法
string str2 = dt.ToString("yyyy-MM-dd HH:mm:ss"); //yyyy、mm、dd 是格式模式,大小写敏感
DateTime 的 ToString 的格式模式大小写敏感,请注意大小写,各模式之间可以互相组合,常见的模式如下:
yy 年,两位数表示。
M 月,小于 10 时,没有前导零。
d 日,小于 10 时,没有前导零。
H 时(24 小时制),小于 10 时,没有前导零。
h 时(12 小时制),小于 10 时,没有前导零。
m 分。小于 10 时,没有前导零。
s 秒。小于 10 时,没有前导零。
获取年、月、日、时、分、秒等
int y = dt.Year; //年
int m = dt.Month; //月
int d = dt.Day; //日,注意是 Day,不是 Date
int h = dt.Hour; //时
int n = dt.Minute; //分
int s = dt.Second; //秒
int ms = dt.Millisecond; //毫秒
long t = dt.Ticks; //一个数字,用于表示该时间,注意类型为 long
时间比较
DateTime dt2 = dt1.AddYears(3);
int ct1 = dt1.CompareTo(dt2); //dt1 早于 dt2,返回 -1
int ct2 = dt2.CompareTo(dt1); //dt2 晚于 dt1,返回 1
int ct3 = dt2.CompareTo(dt2); //dt2 与 dt2 相等,返回 0
DateTime dt2 = dt1.AddYears(3);
bool b = dt1.Equals(dt2); //dt1 与 dt2 不相等,返回 false
时间加减
dt = dt.AddYears(1); //加 1 年
dt = dt.AddMonths(-1); //减 1 月
dt = dt.AddDays(13); //加 13 日
dt = dt.AddHours(1); //时
dt = dt.AddMinutes(1); //分
dt = dt.AddSeconds(1); //秒
dt = dt.AddMilliseconds(1); //毫秒
dt = dt.AddTicks(1); //Ticket,用数字表示当前时间
参数为正,表示加;参数为负,表示减。注意拼写。函数应该返回一个值,比如是:dt = dt.AddYears(1),而不是:dt.AddYears(1)。
还有一个方法是 Add,其语法为:
关于 TimeSpan,请继续阅览本文。
时间减运算
前面的时间加减是对一个时间进行加减,这里是对两个时间进行减运算(用 -),返回的结果类型为 TimeSpan。
DateTime dt2 = dt1.AddDays(3);
TimeSpan ts = dt1 - dt2;
TimeSpan 的属性 Days、Hours、Minutes、Seconds、Milliseconds、Tickets,分别返回相差的天数、时数、分数、秒数、毫秒数、Tickets。有正负之分。
TimsSpan 的属性 TotalDays、TotalHours、TotalMinutes、TotalSeconds、TotalMilliseconds,分别返回以天、时、分、秒、毫秒为单位的相差值。有正负之分。
比如:dt1 比 dt2 早整整 3 天,按上述程序,则:
Days 为 -3,Hours 为 0;
TotalDays 为 -3,TotalHours 为 -72(3 天为 72 小时)。