Previous topicNext topic
Help > 开发指南 > 编程基础 > 数据处理 >
日期

日期计算使用的非常多,我们不仅需要掌握常规的属性、方法。还需要了解日期的定式格式化自定义格式化。为了应付更复杂的日期计算,我们可以再深入了解一下日期扩展。如果想计算两个时间之间的间隔,可以使用TimeSpan

名称 分类 说明
Date 属性 返回日期时间值的日期部分
Year 属性 返回日期值的年份
Month 属性 返回日期值的月份
Day 属性 返回日期为该月中的第几天
DayOfWeek 属性 返回日期为该星期的第几天,也就是星期几
DayOfYear 属性 返回日期是该年中的第几天
Hour 属性 返回日期时间值的小时部分
Minute 属性 返回日期时间值的分钟部分
Second 属性 返回日期时间值的秒部分
AddYears 方法 给日期值加上指定的年数
AddMonths 方法 给日期值加上指定的月数
AddDays 方法 给日期值加上指定的天数
AddHours 方法 给时间值加上指定的小时数
AddMinutes 方法 给时间值加上指定的分钟数
AddSeconds 方法 给时间值加上指定的秒数
Now 静态属性 返回计算机的当前时间(含日期)。
Today 静态属性 返回计算机的当前日期,不含时间。
IsLeapYear 静态方法 判断指定的年份是否是闰年。
DaysInMonth 静态方法 返回指定月份的天数

 Vb.Net
Dim dt As DateTime = DateTime.Now
Proj.MsgDebug.Add("DataTime字符串表示: {0}", dt.ToString())
Proj.MsgDebug.Add("DataTime的日期部分: {0}", DateTime.Today)
Proj.MsgDebug.Add("DataTime的年份部分: {0}", dt.Year)
Proj.MsgDebug.Add("DataTime的月份部分: {0}", dt.Month)
Proj.MsgDebug.Add("DataTime的日期部分: {0}", dt.Date)
Proj.MsgDebug.Add("DataTime的小时部分: {0}", dt.Hour)
Proj.MsgDebug.Add("DataTime的分钟部分: {0}", dt.Minute)
Proj.MsgDebug.Add("DataTime的秒部分: {0}", dt.Second)
Proj.MsgDebug.Add("DataTime的毫秒部分: {0}", dt.Millisecond)
Proj.MsgDebug.Add("DataTime是当月第几天: {0}", dt.Day)
Proj.MsgDebug.Add("DataTime是这周的第几天: {0}", dt.DayOfWeek)
Proj.MsgDebug.Add("DataTime是这年的第几天: {0}", dt.DayOfYear)
Proj.MsgDebug.Add("DataTime取得当天的时间部分(TimeSpan格式): {0}", dt.TimeOfDay)
Proj.MsgDebug.Add("DateTime转换为64位二进制数: {0}", dt.ToBinary())
Proj.MsgDebug.Add("DateTime转换为Windows文件时间: {0}", dt.ToFileTime())
Proj.MsgDebug.Add("DateTime转换为UTC Windows文件时间: {0}", dt.ToFileTimeUtc())
Proj.MsgDebug.Add("DateTime转换为本地时间: {0}", dt.ToLocalTime())
Proj.MsgDebug.Add("DateTime转换为OLE自动化日期: {0}", dt.ToOADate())
Proj.MsgDebug.Add("DateTime转换为UTC时间: {0}", dt.ToUniversalTime())
Proj.MsgDebug.Add("DateTime转换为长日期形式: {0}", dt.ToLongDateString())
Proj.MsgDebug.Add("DateTime转换为短日期形式: {0}", dt.ToShortDateString())
Proj.MsgDebug.Add("DateTime转换为长时间形式: {0}", dt.ToLongTimeString())
Proj.MsgDebug.Add("DateTime转换为短时间形式: {0}", dt.ToShortTimeString())
Proj.MsgDebug.Add("增加一年: {0}", dt.AddYears(1))
Proj.MsgDebug.Add("减少一年: {0}", dt.AddYears(-1))
Proj.MsgDebug.Add("增加一月: {0}", dt.AddMonths(1))
Proj.MsgDebug.Add("减少一月: {0}", dt.AddMonths(-1))
Proj.MsgDebug.Add("增加一天: {0}", dt.AddDays(1))
Proj.MsgDebug.Add("减少一天: {0}", dt.AddDays(-1))
Proj.MsgDebug.Add("增加一小时: {0}", dt.AddHours(1))
Proj.MsgDebug.Add("减少一小时: {0}", dt.AddHours(-1))
Proj.MsgDebug.Add("增加一分钟: {0}", dt.AddMinutes(1))
Proj.MsgDebug.Add("减少一分钟: {0}", dt.AddMinutes(-1))
Proj.MsgDebug.Add("增加一秒钟: {0}", dt.AddSeconds(1))
Proj.MsgDebug.Add("减少一秒钟: {0}", dt.AddSeconds(-1))
Proj.MsgDebug.Add("是否闰年: {0}", DateTime.IsLeapYear(dt.Year))
Proj.MsgDebug.Add("当月共有多少天: {0}", DateTime.DaysInMonth(dt.Year, dt.Month))

'返回结果:DataTime字符串表示: 2022-07-19 22:27:10
'返回结果:DataTime的日期部分: 2022-07-19 0:00:00
'返回结果:DataTime的年份部分: 2022
'返回结果:DataTime的月份部分: 7
'返回结果:DataTime的日期部分: 2022-07-19 0:00:00
'返回结果:DataTime的小时部分: 22
'返回结果:DataTime的分钟部分: 27
'返回结果:DataTime的秒部分: 10
'返回结果:DataTime的毫秒部分: 837
'返回结果:DataTime是当月第几天: 19
'返回结果:DataTime是这周的第几天: Tuesday
'返回结果:DataTime是这年的第几天: 200
'返回结果:DataTime取得当天的时间部分(TimeSpan格式): 22:27:10.8372827
'返回结果:DateTime转换为64位二进制数: -8585433660546402981
'返回结果:DateTime转换为Windows文件时间: 133027144308372827
'返回结果:DateTime转换为UTC Windows文件时间: 133027144308372827
'返回结果:DateTime转换为本地时间: 2022-07-19 22:27:10
'返回结果:DateTime转换为OLE自动化日期: 44761.9355420949
'返回结果:DateTime转换为UTC时间: 2022-07-19 14:27:10
'返回结果:DateTime转换为长日期形式: 2022年7月19日, 星期二
'返回结果:DateTime转换为短日期形式: 2022-07-19
'返回结果:DateTime转换为长时间形式: 22:27:10
'返回结果:DateTime转换为短时间形式: 22:27
'返回结果:增加一年: 2023-07-19 22:27:10
'返回结果:减少一年: 2021-07-19 22:27:10
'返回结果:增加一月: 2022-08-19 22:27:10
'返回结果:减少一月: 2022-06-19 22:27:10
'返回结果:增加一天: 2022-07-20 22:27:10
'返回结果:减少一天: 2022-07-18 22:27:10
'返回结果:增加一小时: 2022-07-19 23:27:10
'返回结果:减少一小时: 2022-07-19 21:27:10
'返回结果:增加一分钟: 2022-07-19 22:28:10
'返回结果:减少一分钟: 2022-07-19 22:26:10
'返回结果:增加一秒钟: 2022-07-19 22:27:11
'返回结果:减少一秒钟: 2022-07-19 22:27:09
'返回结果:是否闰年: False
'返回结果:当月共有多少天: 31

C#
DateTime dt = DateTime.Now; 
Proj.MsgDebug.Add("DataTime字符串表示: {0}", dt.ToString());
Proj.MsgDebug.Add("DataTime的日期部分: {0}", DateTime.Today);
Proj.MsgDebug.Add("DataTime的年份部分: {0}", dt.Year);
Proj.MsgDebug.Add("DataTime的月份部分: {0}", dt.Month);
Proj.MsgDebug.Add("DataTime的日期部分: {0}", dt.Date);
Proj.MsgDebug.Add("DataTime的小时部分: {0}", dt.Hour);
Proj.MsgDebug.Add("DataTime的分钟部分: {0}", dt.Minute);
Proj.MsgDebug.Add("DataTime的秒部分: {0}", dt.Second);
Proj.MsgDebug.Add("DataTime的毫秒部分: {0}", dt.Millisecond);
Proj.MsgDebug.Add("DataTime是当月第几天: {0}", dt.Day);
Proj.MsgDebug.Add("DataTime是这周的第几天: {0}", dt.DayOfWeek);
Proj.MsgDebug.Add("DataTime是这年的第几天: {0}", dt.DayOfYear);
Proj.MsgDebug.Add("DataTime取得当天的时间部分(TimeSpan格式): {0}", dt.TimeOfDay);
Proj.MsgDebug.Add("DateTime转换为64位二进制数: {0}", dt.ToBinary());
Proj.MsgDebug.Add("DateTime转换为Windows文件时间: {0}", dt.ToFileTime());
Proj.MsgDebug.Add("DateTime转换为UTC Windows文件时间: {0}", dt.ToFileTimeUtc());
Proj.MsgDebug.Add("DateTime转换为本地时间: {0}", dt.ToLocalTime());
Proj.MsgDebug.Add("DateTime转换为OLE自动化日期: {0}", dt.ToOADate());
Proj.MsgDebug.Add("DateTime转换为UTC时间: {0}", dt.ToUniversalTime());
Proj.MsgDebug.Add("DateTime转换为长日期形式: {0}", dt.ToLongDateString());
Proj.MsgDebug.Add("DateTime转换为短日期形式: {0}", dt.ToShortDateString());
Proj.MsgDebug.Add("DateTime转换为长时间形式: {0}", dt.ToLongTimeString());
Proj.MsgDebug.Add("DateTime转换为短时间形式: {0}", dt.ToShortTimeString());

Proj.MsgDebug.Add("增加一年: {0}", dt.AddYears(1));
Proj.MsgDebug.Add("减少一年: {0}", dt.AddYears(-1));
Proj.MsgDebug.Add("增加一月: {0}", dt.AddMonths(1));
Proj.MsgDebug.Add("减少一月: {0}", dt.AddMonths(-1));
Proj.MsgDebug.Add("增加一天: {0}", dt.AddDays(1));
Proj.MsgDebug.Add("减少一天: {0}", dt.AddDays(-1));
Proj.MsgDebug.Add("增加一小时: {0}", dt.AddHours(1));
Proj.MsgDebug.Add("减少一小时: {0}", dt.AddHours(-1));
Proj.MsgDebug.Add("增加一分钟: {0}", dt.AddMinutes(1));
Proj.MsgDebug.Add("减少一分钟: {0}", dt.AddMinutes(-1));
Proj.MsgDebug.Add("增加一秒钟: {0}", dt.AddSeconds(1));
Proj.MsgDebug.Add("减少一秒钟: {0}", dt.AddSeconds(-1));

Proj.MsgDebug.Add("是否闰年: {0}",DateTime.IsLeapYear(dt.Year));
Proj.MsgDebug.Add("当月共有多少天: {0}",DateTime.DaysInMonth(dt.Year,dt.Month));

//返回结果:DataTime字符串表示: 2022-07-19 22:27:10
//返回结果:DataTime的日期部分: 2022-07-19 0:00:00
//返回结果:DataTime的年份部分: 2022
//返回结果:DataTime的月份部分: 7
//返回结果:DataTime的日期部分: 2022-07-19 0:00:00
//返回结果:DataTime的小时部分: 22
//返回结果:DataTime的分钟部分: 27
//返回结果:DataTime的秒部分: 10
//返回结果:DataTime的毫秒部分: 837
//返回结果:DataTime是当月第几天: 19
//返回结果:DataTime是这周的第几天: Tuesday
//返回结果:DataTime是这年的第几天: 200
//返回结果:DataTime取得当天的时间部分(TimeSpan格式): 22:27:10.8372827
//返回结果:DateTime转换为64位二进制数: -8585433660546402981
//返回结果:DateTime转换为Windows文件时间: 133027144308372827
//返回结果:DateTime转换为UTC Windows文件时间: 133027144308372827
//返回结果:DateTime转换为本地时间: 2022-07-19 22:27:10
//返回结果:DateTime转换为OLE自动化日期: 44761.9355420949
//返回结果:DateTime转换为UTC时间: 2022-07-19 14:27:10
//返回结果:DateTime转换为长日期形式: 2022年7月19日, 星期二
//返回结果:DateTime转换为短日期形式: 2022-07-19
//返回结果:DateTime转换为长时间形式: 22:27:10
//返回结果:DateTime转换为短时间形式: 22:27
//返回结果:增加一年: 2023-07-19 22:27:10
//返回结果:减少一年: 2021-07-19 22:27:10
//返回结果:增加一月: 2022-08-19 22:27:10
//返回结果:减少一月: 2022-06-19 22:27:10
//返回结果:增加一天: 2022-07-20 22:27:10
//返回结果:减少一天: 2022-07-18 22:27:10
//返回结果:增加一小时: 2022-07-19 23:27:10
//返回结果:减少一小时: 2022-07-19 21:27:10
//返回结果:增加一分钟: 2022-07-19 22:28:10
//返回结果:减少一分钟: 2022-07-19 22:26:10
//返回结果:增加一秒钟: 2022-07-19 22:27:11
//返回结果:减少一秒钟: 2022-07-19 22:27:09
//返回结果:是否闰年: False
//返回结果:当月共有多少天: 31