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

C#中挪威日期格式下日期加算与指定格式输出的实现问题

解决挪威日期格式转换问题

需求回顾

你需要将挪威格式的日期(如31 juli 2021)添加14天后,转换为同格式的结果(如14 august 2021),现有代码目前得到的是短日期格式(14.08.2021),且已有获取挪威语月份名称的方法。


方案一:不重构现有逻辑的快速修改

首先注意你代码里有个变量名笔误:invoiceDayPlus14应该是invoiceDatePlus14,先修正这个小问题。然后只需要替换最后一步的格式化代码,利用你已有的getMonthName方法手动拼接目标格式:

// 替换原来的ToShortDateString()行
string rsvpBy_monthIsInt = $"{invoiceDatePlus14.Day} {getMonthName(invoiceDatePlus14.Month)} {invoiceDatePlus14.Year}";

这个改动完全保留了现有代码的整体逻辑,只是把短日期输出改成了符合要求的挪威语日期格式,直接得到14 august 2021这样的结果。


方案二:推荐的重构方案

虽然现有逻辑能通过小修改实现需求,但利用.NET原生的本地化API重构会更简洁、可靠,还能避免手动处理月份名称的潜在问题:

  1. 移除冗余的自定义方法(可选,若保留也不影响,但重构后用不到):你手动实现的getMonthName方法其实可以被.NET的文化格式化API替代。
  2. 使用挪威文化直接格式化日期:
// 创建挪威文化实例
var norwegianCulture = CultureInfo.CreateSpecificCulture("no");
// 用指定格式格式化日期,"d MMMM yyyy"对应:日 + 完整月份名 + 四位年份
string rsvpBy_monthIsInt = invoiceDatePlus14.ToString("d MMMM yyyy", norwegianCulture);

重构的优势

  • 代码更简洁,减少手动拼接的冗余代码
  • 避免手动处理月份名称可能出现的拼写、大小写错误
  • 扩展性更强:后续如果需要切换其他北欧语言或调整日期格式,只需修改文化代码或格式字符串即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 19:08:16