// 时间对象
// DateTime 用来获取时间
// 时间对象是一个结构体
// 获取当前时间
DateTime dt = DateTime.Now;
Console.WriteLine(dt);
// 获取utc时间 国际时间
DateTime dt1 = DateTime.UtcNow;
Console.WriteLine(dt1);
// 获取指定时间
// new DateTime(年, 月, 日, 时, 分, 秒);
DateTime dt2 = new DateTime(2024, 10, 12, 10, 10, 10);
Console.WriteLine(dt2);
// 获取年月日 时分秒
int year = dt.Year;
Console.WriteLine(year);
int month = dt.Month;
Console.WriteLine(month);
int day = dt.Day;
Console.WriteLine(day);
// 这是枚举类型的
DayOfWeek workDay = dt.DayOfWeek;
Console.WriteLine(workDay);
int hour = dt.Hour; // 获取小时
Console.WriteLine(hour);
int minute = dt.Minute; // 获取分钟
Console.WriteLine(minute);
int second = dt.Second; // 获取秒钟
Console.WriteLine(second);
int microsecond = dt.Millisecond; // 获取毫秒
Console.WriteLine(microsecond);
// 获取时间戳
// 时间戳 是指格林威治时间 1970年1月1日 00:00:00 到现在的毫秒值, 北京时间 1970年1月1日 8:00:00 到现在的毫秒值
// DateTimeOffset 常用来操作时区 时间转换的对象处理
long time = new DateTimeOffset(dt).ToUnixTimeMilliseconds();
Console.WriteLine(time);
Console.WriteLine(GetDay(1937, 7, 7));
Console.ReadLine();
}
2. 时间间隔
// 时间间隔 就是时间差对象 从某一天到另一天间隔了多久
// 时间间隔是 两个时间对象相减得到的时间对象
DateTime dt = new DateTime(2005, 5, 5);
DateTime dt1 = DateTime.Now;
TimeSpan time = dt1 - dt;
Console.WriteLine(time.Days); // 获取天数部分
Console.WriteLine(time.Hours); // 获取小时 部分
Console.WriteLine(time.Minutes); // 获取分钟 部分
Console.WriteLine(time.Seconds); // 获取秒 部分
Console.WriteLine(time.TotalDays); // 获取有多少天 是一个小数
Console.WriteLine(time.TotalHours); // 获取有多少小时 是一个小数
Console.WriteLine(time.TotalMinutes); // 获取有多少分钟 是一个小数
Console.WriteLine(time.TotalSeconds); // 获取有多少秒钟 是一个小数
2-1 时间间隔的相关计算
// 获取当前时间
DateTime dt = DateTime.Now;
DateTime dt1 = dt.AddDays(1); // 在当前时间的基础上加 一天
DateTime dt2 = dt.AddYears(1); // 在当前时间的基础上加 一年
DateTime dt3 = dt.AddMonths(1); // 在当前时间的基础上加 一月
DateTime dt4 = dt.AddHours(1); // 在当前时间的基础上加 一小时
DateTime dt5 = dt.AddMinutes(1); // 在当前时间的基础上加 一分钟
DateTime dt6 = dt.AddSeconds(1); // 在当前时间的基础上加 一秒钟
bool b1 = dt1 < dt; // 时间在后面的大 时间在前面的小
Console.WriteLine(b1);
// 时间间隔运算
TimeSpan timeSpan = new TimeSpan(1, 1, 1, 1, 1);
TimeSpan ts = timeSpan + timeSpan;
TimeSpan ts1 = timeSpan - timeSpan;
bool b = timeSpan > ts; // 两个时间大小比较 时间间隔比较长的大 短的小
Console.WriteLine(b);
Console.WriteLine(ts1 + "----------------------");
timeSpan.Add(timeSpan); // 在当前时间间隔的基础上加上一个新的时间间隔 等价于 timeSpan + timeSpan
Console.WriteLine(dt1);
Console.WriteLine(dt2);
Console.WriteLine(dt3);
Console.WriteLine(dt4);
Console.WriteLine(dt5);
Console.WriteLine(dt6);
// 1. 时间格式化
string str = dt.ToString("d"); // tostring 中提供了格式化时间字符串的方法
// 自定义格式化的形式
string str1 = dt.ToString("yyyy年MM月dd日 hh:mm:ss"); // tostring 中提供了格式化时间字符串的方法
Console.WriteLine(str1);
// 2. 解析时间字符串 为 时间对象
DateTime dt7 = DateTime.Parse("2024/12/12 12:12:12");
Console.WriteLine(dt7);