C#中的Date Time类

DateTime类

用来进行时间操作的,类型的变量一般用于储存一个时间

DateTime.Now 属性,用于获取当前的系统时间

复制代码
DateTime dt = DateTime.Now;
Console.WriteLine(dt); //2024 / 5 / 28 10:12:27

//可以通过时间对象的属性,获取单独的某个时间详情。
Console.WriteLine($"年:{dt.Year}");
Console.WriteLine($"月:{dt.Month}");
Console.WriteLine($"日:{dt.Day}");
Console.WriteLine($"时:{dt.Hour}");
Console.WriteLine($"分:{dt.Minute}");
Console.WriteLine($"秒:{dt.Second}");
Console.WriteLine($"毫秒:{dt.Millisecond}");

Console.WriteLine($"今天是周几,{dt.DayOfWeek}"); //Tuesday
Console.WriteLine($"今天是周几,{(int)dt.DayOfWeek}"); //转换为数字。2 ,0-6(0代表周日,其余正常)
Console.WriteLine($"今天是周几,{dt.DayOfYear}"); //147, 获取当前是一年中的第几天


// 把当前的时间转换为字符串类型,可以有不同的格式
Console.WriteLine(dt.ToString());//2024/5/28 10:26:30
Console.WriteLine(dt.ToString("G"));//2024/5/28 10:26:30
Console.WriteLine(dt.ToString("s"));//2024-05-28T10:28:32
Console.WriteLine(dt.ToString("d"));//2024/5/28
Console.WriteLine(dt.ToString("D"));//2024年5月28日
Console.WriteLine(dt.ToString("F"));//2024年5月28日 10:29:16


//格式化的时候,一些字符可以代表时间属性
Console.WriteLine(dt.ToString("yy")); //24年的后两位
Console.WriteLine(dt.ToString("M"));
Console.WriteLine(dt.ToString("dd"));
Console.WriteLine(dt.ToString("m"));
Console.WriteLine(dt.ToString("s"));
Console.WriteLine(dt.ToString("fff"));
Console.WriteLine(dt.ToString("现在是小时是:H")); //注意:如果单独使用H/h报错,拼接字符串

Console.WriteLine(dt.ToString("今年是yyyy年MM月dd日HH时mm分ss秒,今天是dddd"));

Console.WriteLine("========================");

// 时间戳,把当前时间转换为秒 / 毫秒
DateTime time = DateTime.Now;
Console.WriteLine(new DateTimeOffset(time));//换算为格林威治时间
Console.WriteLine(new DateTimeOffset(time).ToUnixTimeSeconds()); //秒戳
Console.WriteLine(new DateTimeOffset(time).ToUnixTimeMilliseconds()); //毫秒戳

//生成目标时间对象
DateTime myTime = new DateTime(2003, 3, 3, 11, 20, 58);
Console.WriteLine(myTime.ToString());

清除上面代码

Console.Clear();

Console.WriteLine(DateTime.Now.ToString("今年是yyyy年MM月dd日HH时mm分ss秒,今天是dddd"));

让代码停止1秒,单位毫秒

Thread.Sleep(1000);

时间的计算和对比

复制代码
//时间的操作
DateTime dateTime = DateTime.Now;
Console.WriteLine(dateTime);
//可以通过调整时间对象的ADDXXX()方法,来修改当前的时间对象的年月日时分秒。
dateTime = dateTime.AddYears(1);
dateTime = dateTime.AddMonths(1);
Console.WriteLine(dateTime.ToString());
dateTime = dateTime.AddYears(-5);
Console.WriteLine(dateTime.ToString());

//上面的修改,不会对真正的时间对象进行修改。
DateTime dateTime1 = DateTime.Now;
Console.WriteLine(dateTime1);


// 如果需要进行时间比较,可以使用 > < >= <= == != 运算符。
if (DateTime.Now < new DateTime(2028, 1, 1))
{
    Console.WriteLine("ok");
}
else
{
    Console.WriteLine("NO");
}

// 可以直接使用-进行时间的计算。 TimeSpan得到时间的跨度。
TimeSpan tm = new DateTime(2026,1,1) - DateTime.Now;
Console.WriteLine($"到2026年1月1日还有{tm.Days}天");
Console.WriteLine($"到2026年1月1日还有{tm.TotalHours}小时");
相关推荐
ZERO_pan2 小时前
服务器装机遇到的问题
运维·服务器
l1t2 小时前
利用DeepSeek实现服务器客户端模式的DuckDB原型
服务器·c语言·数据库·人工智能·postgresql·协议·duckdb
杀气丶2 小时前
Linux下运行芙蕾雅天堂2【俄文简译L2FATER】
运维·服务器·天堂2·l2fater·l2fater.cn
喵手2 小时前
玩转Java网络编程:基于Socket的服务器和客户端开发!
java·服务器·网络
MarkHard1236 小时前
如何利用redis使用一个滑动窗口限流
数据库·redis·缓存
Tisfy6 小时前
服务器 - 从一台服务器切换至另一台服务器(损失数十条访客记录)
运维·服务器
未来之窗软件服务7 小时前
幽冥大陆(二)RDIFSDK 接口文档:布草洗涤厂高效运营的技术桥梁C#—东方仙盟
开发语言·c#·rdif·仙盟创梦ide·东方仙盟
猎板PCB黄浩7 小时前
从废料到碳减排:猎板 PCB 埋容埋阻的绿色制造革命,如何实现环保与性能双赢
java·服务器·制造
island13147 小时前
【Redis#10】渐进式遍历 | 数据库管理 | redis_cli | RES
数据库·redis·bootstrap
心想事成的幸运大王8 小时前
Redis的过期策略
数据库·redis·缓存