摘要
时间日期操作类,包含DateTime可处理日期和时间的结构。要在C#中使用日期和时间,请使用 new 关键字创建 DateTime 结构的对象。
正文
Date | 获取此实例的日期部分。 |
Day | 获取此实例所表示的日期为该月中的第几天。 |
DayOfWeek | 获取此实例所表示的日期是星期几。 |
DayOfYear | 获取此实例所表示的日期是该年中的第几天。 |
Hour | 获取此实例所表示日期的小时部分。 |
Kind | 获取一个值,该值指示由此实例表示的时间是基于本地时间、协调世界时 (UTC),还是两者皆否。 |
Millisecond | 获取此实例所表示日期的毫秒部分。 |
Minute | 获取此实例所表示日期的分钟部分。 |
Month | 获取此实例所表示日期的月份部分。 |
Now | 获取一个 DateTime 对象,该对象设置为此计算机上的当前日期和时间,表示为本地时间。 |
Second | 获取此实例所表示日期的秒部分。 |
Ticks | 获取表示此实例的日期和时间的计时周期数。 |
TimeOfDay | 获取此实例的当天的时间。 |
Today | 获取当前日期。 |
UtcNow | 获取一个 DateTime 对象,该对象设置为此计算机上的当前日期和时间,表示为协调通用时间 (UTC)。 |
Year | 获取此实例所表示日期的年份部分。 |
方法
Add(TimeSpan) | 返回一个新的 DateTime,它将指定 TimeSpan 的值添加到此实例的值上。 |
AddDays(Double) | 返回一个新的 DateTime,它将指定的天数加到此实例的值上。 |
AddHours(Double) | 返回一个新的 DateTime,它将指定的小时数加到此实例的值上。 |
AddMilliseconds(Double) | 返回一个新的 DateTime,它将指定的毫秒数加到此实例的值上。 |
AddMinutes(Double) | 返回一个新的 DateTime,它将指定的分钟数加到此实例的值上。 |
AddMonths(Int32) | 返回一个新的 DateTime,它将指定的月数加到此实例的值上。 |
AddSeconds(Double) | 返回一个新的 DateTime,它将指定的秒数加到此实例的值上。 |
AddTicks(Int64) | 返回一个新的 DateTime,它将指定的刻度数加到此实例的值上。 |
AddYears(Int32) | 返回一个新的 DateTime,它将指定的年份数加到此实例的值上。 |
DaysInMonth(Int32, Int32) | 返回指定年和月中的天数。 |
FromFileTimeUtc(Int64) | 将指定的 Windows 文件时间转换为等效的 UTC 时间。 |
FromOADate(Double) | 返回与指定的 OLE 自动化日期等效的 DateTime。 |
GetDateTimeFormats() | 将此实例的值转换为标准日期和时间格式说明符支持的所有字符串表示形式。 |
IsDaylightSavingTime() | 指示此 DateTime 实例是否在当前时区的夏时制范围内。 |
IsLeapYear(Int32) | 返回指定的年份是否为闰年的指示。 |
Parse(String) | 使用当前区域性的约定将日期和时间的字符串表示形式 DateTime 转换为其等效的 。 |
SpecifyKind(DateTime, DateTimeKind) | 创建新的 DateTime 对象,该对象具有与指定的 DateTime 相同的刻度数,但是根据指定的 DateTimeKind 值的指示,指定为本地时间或协调世界时 (UTC),或者两者皆否。 |
Subtract(DateTime) | 返回一个新的 TimeSpan,从此实例的值中减去指定的日期和时间。 |
Subtract(TimeSpan) | 返回一个新的 DateTime,从此实例的值中减去指定持续时间。 |
ToFileTime() | 将当前 DateTime 对象的值转换为 Windows 文件时间。 |
ToFileTimeUtc() | 将当前 DateTime 对象的值转换为 Windows 文件时间。 |
ToLocalTime() | 将当前 DateTime 对象的值转换为本地时间。 |
ToLongDateString() | 将当前 DateTime 对象的值转换为其等效的长日期字符串表示形式。 |
ToLongTimeString() | 将当前 DateTime 对象的值转换为其等效的长时间字符串表示形式。 |
ToOADate() | 将此实例的值转换为等效的 OLE 自动化日期。 |
ToShortDateString() | 将当前 DateTime 对象的值转换为其等效的短日期字符串表示形式。 |
ToShortTimeString() | 将当前 DateTime 对象的值转换为其等效的短时间字符串表示形式。 |
ToString() | 使用当前的区域性格式约定将当前 DateTime 对象的值转换为它的等效字符串表示形式。 |
获取时间
static void Main(string[] args)
{
Console.WriteLine(System.DateTime.Now); // 当前本地时间 (年月日时分秒)
Console.WriteLine(System.DateTime.UtcNow); // 当前世界时间 (年月日时分秒)
Console.WriteLine(System.DateTime.Now.Year); // 当前时间 (年)
Console.WriteLine(System.DateTime.Now.Month); // 当前时间 (月)
Console.WriteLine(System.DateTime.Now.Day); // 当前时间 (日)
Console.WriteLine(System.DateTime.Now.Hour); // 当前时间 (时)
Console.WriteLine(System.DateTime.Now.Minute); // 当前时间 (分)
Console.WriteLine(System.DateTime.Now.Second); // 当前时间 (秒)
}
字符串转时间
static void Main(string[] args)
{
DateTime date1 = new DateTime();//1/1/0001 12:00:00 AM —— 默认构造函数
DateTime date2 = new DateTime(2023, 1, 6, 6, 6, 6); //1/6/2023 6:06:06 AM —— 初始化 年、月、日、时、分、秒
Console.WriteLine(date2.ToString("yyyyMMddHH:mm:ss")); //2023060606:06:06
Console.WriteLine(date2.ToString("yyyy-MM-dd-HH-mm-ss"));//2023-06-06-06-06-06 —— DateTime.ToString(String)使用自定义方式格式化日期字符串
}
DateTime d1 = DateTime.Now;
Console.WriteLine(d1.Date);
Console.WriteLine(d1.Day);
Console.WriteLine(d1.DayOfWeek);
Console.WriteLine(d1.DayOfYear);
Console.WriteLine(d1.AddDays(10));
Console.WriteLine(d1.AddDays(-10));
Console.WriteLine(d1.AddHours(6));
Console.WriteLine(d1.AddSeconds(10));
DateTime dt1 = DateTime.Now;
**DateTime dt2 = new DateTime(2021, 6, 1);
TimeSpan ts = dt2 - dt1;**
Console.WriteLine("间隔的天数为{0}天", ts.Days);
//计算某年某月的天数
int days = DateTime.DaysInMonth(2017, 2);
Console.WriteLine(days.ToString());
//本月的天数
int daysInMonth = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
Console.WriteLine(daysInMonth.ToString());
//本年的天数 是否是闰年
int daysInYear = DateTime.IsLeapYear(DateTime.Now.Year) ? 366 : 365;
Console.WriteLine(daysInYear.ToString());
//本月第一天
DateTime firstDayInMonth = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
Console.WriteLine(firstDayInMonth.ToString());
//本月的最后一天
DateTime lastDayInMonth = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(1).AddDays(-1);
Console.WriteLine(lastDayInMonth.ToString());
//得到星期几 星期天为7
int dayOfWeek = Convert.ToInt32(DateTime.Now.DayOfWeek) < 1 ? 7 : Convert.ToInt32(DateTime.Now.DayOfWeek);
Console.WriteLine(dayOfWeek.ToString());
//本季度第一天
DateTime firsyDayInQuarter = new DateTime(DateTime.Now.Year, DateTime.Now.Month - (DateTime.Now.Month - 1) % 3, 1);
Console.WriteLine(firsyDayInQuarter.ToString());
//本季度最后一天
DateTime lastDayInQuarter = firsyDayInQuarter.AddMonths(3).AddDays(-1);
Console.WriteLine(lastDayInQuarter.ToString());