码迷,mamicode.com
首页 > Web开发 > 详细

.NET Core 中使用 Humanizer 显示友好时间格式

时间:2019-06-08 00:30:23      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:span   lin   lan   计算   方法   net   com   一个   项目迁移   

今天在将一个 .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") }
});

.NET Core 中使用 Humanizer 显示友好时间格式

标签:span   lin   lan   计算   方法   net   com   一个   项目迁移   

原文地址:https://www.cnblogs.com/dudu/p/10989454.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!