C# 获取某个时间的0点0分和23点59分59秒

本文详细介绍了如何使用C#获取当前月份、上个月的第一天和最后一天的具体时间点,包括0时0分0秒和23时59分59秒的精确计算方法。同时也提供了获取当天和本周特定时间点的代码示例。
C#获取当月第一天和最后一天
当月第一天0时0分0秒:

DateTime.Now.AddDays(1 - DateTime.Now.Day).Date

当月最后一天23时59分59秒:

DateTime.Now.AddDays(1 - DateTime.Now.Day).Date.AddMonths(1).AddSeconds(-1)

C#获取上个月第一天和最后一天
上个月第一天0时0分0秒:

DateTime.Now.AddMonths(-1).Date.AddDays(1 - DateTime.Now.Day);

上个月最后一天23时59分59秒:
DateTime.Parse(DateTime.Now.AddDays(1 - DateTime.Now.Day).ToShortDateString()).AddSeconds(-1).ToString();

当天0时0分0秒:
DateTime start = Convert.ToDateTime(DateTime.Now.ToString("D").ToString());
当天23时59分59秒: DateTime end
= Convert.ToDateTime(DateTime.Now.AddDays(1).ToString("D").ToString()).AddSeconds(-1);

本周一0时0分0秒:

 DateTime Monday = Convert.ToDateTime(DateTime.Now.AddDays(1 - Convert.ToInt32(DateTime.Now.DayOfWeek)).ToString("D").ToString());

 

本周日0时0分0秒:

 DateTime Sunday = Monday.AddDays(7).AddSeconds(-1);

 

转载于:https://www.cnblogs.com/Loners/p/11526751.html

C# 中,获取当前时间以及当天 00 0 (即当天的起始时间)可以通过 `DateTime` 结构实现。以下是具体方法: --- ### **1. 获取当前时间** 直接使用 `DateTime.Now`(本地时间)或 `DateTime.UtcNow`(UTC 时间): ```csharp DateTime currentTime = DateTime.Now; // 本地时间 // 或 DateTime utcTime = DateTime.UtcNow; // UTC 时间 Console.WriteLine($"当前时间: {currentTime}"); ``` --- ### **2. 获取当天 00 0 ** #### **方法 1:通过 `DateTime.Today`** `DateTime.Today` 直接返回当天的日期部时间默认为 `00:00:00`: ```csharp DateTime todayStart = DateTime.Today; Console.WriteLine($"当天 0 时: {todayStart}"); ``` #### **方法 2:通过 `DateTime.Now.Date`** `DateTime.Now.Date` 效果与 `DateTime.Today` 相同: ```csharp DateTime todayStart = DateTime.Now.Date; Console.WriteLine($"当天 0 时: {todayStart}"); ``` #### **方法 3:手动构造时间** 如果需要基于某个时间变量获取当天的起始时间: ```csharp DateTime anyTime = DateTime.Now; // 任意时间 DateTime todayStart = new DateTime(anyTime.Year, anyTime.Month, anyTime.Day); Console.WriteLine($"当天 0 时: {todayStart}"); ``` --- ### **完整示例代码** ```csharp using System; class Program { static void Main() { // 1. 获取当前时间 DateTime now = DateTime.Now; Console.WriteLine($"当前时间: {now}"); // 2. 获取当天 00 0 DateTime todayStart = DateTime.Today; // 或 DateTime.Now.Date Console.WriteLine($"当天 0 时: {todayStart}"); // 验证时间是否为 00:00:00 Console.WriteLine($"时间: {todayStart.TimeOfDay}"); // 输出 00:00:00 } } ``` --- ### **关键说明** 1. **`DateTime.Today` vs `DateTime.Now.Date`** - 两者结果相同,但 `DateTime.Today` 是静态属性,性能略优。 - 如果需要基于其他时间变量计算当天起始时间,使用 `new DateTime(year, month, day)`。 2. **时区问题** - `DateTime.Now` 返回本地时区时间,`DateTime.UtcNow` 返回 UTC 时间。 - 如果需要统一时区处理,建议使用 `DateTime.UtcNow` 或显式转换时区(如 `TimeZoneInfo`)。 3. **时间验证** - 通过 `TimeOfDay` 属性可以确认时间是否为 `00:00:00`。 --- ### **扩展:获取其他关键时间** ```csharp // 当天 23:59:59 DateTime todayEnd = DateTime.Today.AddDays(1).AddTicks(-1); // 明天的 0 时 DateTime tomorrowStart = DateTime.Today.AddDays(1); ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值