一文讲透 C# 日期时间处理:从 ToString 格式化到本月/本周/本季度计算
2026/6/11 9:23:54 网站建设 项目流程

日期计算与格式化

获取N天前/后的日期使用AddDays方法进行日期偏移计算,正数表示未来日期,负数表示历史日期:

DateTime now = DateTime.Now; DateTime futureDate = now.AddDays(N); // N天后 DateTime pastDate = now.AddDays(-N); // N天前

常用日期范围查询

基础日期获取

DateTime today = DateTime.Now.Date; DateTime yesterday = today.AddDays(-1); DateTime tomorrow = today.AddDays(1);

周范围计算

DateTime monday = today.AddDays(-(int)today.DayOfWeek + (int)DayOfWeek.Monday); DateTime sunday = monday.AddDays(6);

月范围计算

DateTime monthStart = new DateTime(now.Year, now.Month, 1); DateTime monthEnd = monthStart.AddMonths(1).AddDays(-1);

季度范围计算

int quarter = (now.Month - 1) / 3 + 1; DateTime quarterStart = new DateTime(now.Year, (quarter - 1) * 3 + 1, 1); DateTime quarterEnd = quarterStart.AddMonths(3).AddDays(-1);

年范围计算

DateTime yearStart = new DateTime(now.Year, 1, 1); DateTime yearEnd = yearStart.AddYears(1).AddDays(-1);

格式化技巧

日期时间分离

string datePart = now.ToShortDateString(); // 仅日期 string timePart = now.ToString("HH:mm:ss"); // 仅时间

中文星期显示

string chineseWeekday = "星期" + "日一二三四五六"[(int)now.DayOfWeek];

标准化格式

string isoFormat = now.ToString("o"); // ISO 8601格式 string monthWithZero = now.ToString("MM"); // 补零月份 int monthRaw = now.Month; // 原始月份值

注意事项

  • 时区处理建议使用DateTime.UtcNow存储
  • 避免重复调用DateTime.Now,应缓存结果
  • 数据库字段推荐使用DateTime类型而非字符串
  • 周计算注意DayOfWeek枚举从周日(0)开始

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询