stevenjin 2024-09-29 14:01 采纳率: 100%
浏览 1
已采纳

asp.net cor mvc多国语言切换的时间问题

1.net 7.0 asp.net mvc
2.项目中应用了多国语言切换。如果是英文,获取到的时间带AM,导致时间比对等出现问题
3.在项目启动时,用了以下方式强制转换,并没有起到作用。但在获取时间前执行该语言可行
请教一劳永逸的处理方法


  if (DateTimeFormatInfo.CurrentInfo != null)
  {
      var type = DateTimeFormatInfo.CurrentInfo.GetType();
      var field = type.GetField("generalLongTimePattern", BindingFlags.NonPublic | BindingFlags.Instance);
      if (field != null)
          field.SetValue(DateTimeFormatInfo.CurrentInfo, "yyyy-MM-dd HH:mm:ss");
  }
  • 写回答

1条回答 默认 最新

  • 一轮明月照丘壑 2024-09-29 14:02
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    您的问题是关于ASP.NET Core MVC中的多国语言切换导致的时间格式问题。当您切换语言为英文时,时间格式包含AM/PM,这可能会影响时间的比对和处理。您提供的代码片段试图修改当前的时间格式,但并没有达到预期的效果。下面是一些建议的解决方法:

    1. 使用Culture Info

    在ASP.NET Core中,您可以使用CultureInfo类来管理不同文化的特定设置,包括日期和时间的格式。您可以为每种文化创建一个特定的CultureInfo实例,并为其设置特定的时间格式。这样,在您的应用程序中切换文化时,时间格式也会相应地变化。

    例如,在获取时间之前设置当前线程的文化信息:

    var cultureInfo = new CultureInfo("en-US");
    cultureInfo.DateTimeFormat.ShortTimePattern = "HH:mm";  // 不带AM/PM的格式
    Thread.CurrentThread.CurrentCulture = cultureInfo;
    

    请注意,这种方式每次获取时间前都需要设置,可能不是最优雅的方法。但如果您在应用程序的某个固定位置(如启动或中间件)设置它,可以确保后续的所有时间操作都使用相同的时间格式。

    1. 全局配置

    考虑在应用程序启动时配置全局的文化设置。您可以在Startup.cs文件中的ConfigureServices方法里进行设置。这样,您的整个应用程序都会使用相同的文化设置。但这要求您明确知道您希望在整个应用程序中使用哪种时间格式。 3. 考虑时间处理的业务逻辑

    对于时间的比对和处理,您可能需要编写一些特定的逻辑来处理不同文化的时间格式。例如,当从用户接收时间输入时,可以先将其转换为UTC时间或其他标准时间格式,然后再进行比对和处理。这样,无论文化如何变化,您的逻辑始终基于相同的时间格式。 4. 使用自定义的DateTime提供者

    您可以创建一个自定义的DateTime提供者,该提供者会根据当前文化返回特定格式的时间。这样,无论文化如何变化,您都可以确保获取到的时间具有统一的格式。

    总之,解决此问题的方法取决于您的具体需求和应用程序的结构。您可能需要结合上述几种方法来确保在不同的文化和时间格式下都能正确地处理时间。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 9月29日
  • 创建了问题 9月29日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?