zoukankan      html  css  js  c++  java
  • .NET Core 中使用 Humanizer 显示友好时间格式

    今天在将一个 .net framework 项目迁移至 .net core 的过程中,在迁移到显示友好时间格式(比如“1分钟前”,“1小时前”)的代码时,找了找看有没有对应的开源库,结果找到了 Humanizer ,顺手体验了一下,感觉不错,在这篇随笔中记录一下。

    由于显示的是中文友好时间格式,需要安装 nuget 包 Humanizer.Core.zh-CN 。

    <ItemGroup>
      <PackageReference Include="Humanizer.Core.zh-CN" Version="2.6.2" />
    </ItemGroup>

    Humanizer 默认是基于 UTC 时间计算的,对于北京时间需要将 Humanize 方法的 utcDate 参数设置为 false

    Console.WriteLine(DateTime.Now.AddHours(-1).Humanize(utcDate: false));

    由于我用的是英文操作系统,运行时显示的是 

    an hour ago

    Humanize 方法提供了 culture 参数,可以通过它设置为中文

    Console.WriteLine(DateTime.Now.AddHours(-1).Humanize(utcDate:false, culture: new CultureInfo("zh-CN")));
    $ dotnet run
    1 小时前

    也可以通过设置当前线程的 CurrentUICulture 实现

    Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-CN");
    Console.WriteLine(DateTime.Now.AddHours(-1).Humanize(utcDate:false));

    对于 ASP.NET Core 项目,可以通过设置 localization middleware 实现

    app.UseRequestLocalization(new RequestLocalizationOptions
    {
        SupportedUICultures = new[] { new CultureInfo("zh-CN") }
    });
  • 相关阅读:
    关于回调函数的初探
    细节决定成败
    数据的导航与跳转
    如何在同一页面显示父子表的内容
    从Request到Response之间的所有事件发生的顺序
    如何更改网站的一些公共数据
    如何实现计数器
    DataTable.Select方法
    登出代码
    如何构建自定义控件
  • 原文地址:https://www.cnblogs.com/dudu/p/10989454.html
Copyright © 2011-2022 走看看