You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MVC的Razor视图中获取格式为"00/2017"的上一年日期?

解决Razor视图中上一年日期格式问题

我来帮你搞定这个日期格式的问题,你的现有代码里有几个小问题导致输出不符合预期,咱们一步步修正:

问题分析

  1. 未定义变量:代码里的current和now没有提前声明,Razor视图会直接报错;
  2. 错误的格式化对象:你调用了.Year.ToString("MM/yyyy"),但Year是整数类型,这个格式字符串对整数完全无效——要输出MM/yyyy格式,必须针对完整的DateTime对象做格式化操作,而不是单独的年份属性。

修正方案

如果你需要的是当前月份的上一年同期日期(比如现在是2024年5月,输出05/2023),可以用这段代码:

@{
    // 获取当前时间
    DateTime currentDate = DateTime.Now;
    // 构造当前月份第一天,再减去一年
    DateTime previousYearMonth = new DateTime(currentDate.Year, currentDate.Month, 1).AddYears(-1);
    // 格式化为MM/yyyy字符串
    string previousYearFormatted = previousYearMonth.ToString("MM/yyyy");
}

如果你的需求是固定显示"00/上一年份"(比如不管当前月份,输出00/2023),可以直接拼接字符串:

@{
    string previousYearFormatted = $"00/{DateTime.Now.Year - 1}";
}

验证输出

运行修正后的代码,你就能得到符合要求的字符串格式啦。比如当前年份是2024年,第一种方案会输出对应月份的上一年日期,第二种会输出00/2023。

内容的提问来源于stack exchange,提问作者User9895

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:07:06