今天在将一个 .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(-).Humanize(utcDate: false));

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

an hour ago

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

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

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

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

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

app.UseRequestLocalization(new RequestLocalizationOptions
{
SupportedUICultures = new[] { new CultureInfo("zh-CN") }
});

.NET Core 中使用 Humanizer 显示友好时间格式的更多相关文章

  1. Linux环境变量的修改(永久,暂时)以及修改ls显示的时间格式

    本文转自:http://blog.sina.com.cn/s/blog_8e21864f01014u9h.html Linux修改环境变量,很简单但很重要 一.Linux的变量种类 按变量的生存周期来 ...

  2. 【Linux基础】linux下修改ls显示的时间格式

    1.修改ls显示格式 ls -l --time-style '+%Y/%m/%d %H:%M:%S' drwxr-x--- edwetl edwetl // :: arc_test ls -l --t ...

  3. (转)linux 中使用ls指定输出时间格式

    linux 中使用ls指定输出时间格式 原文:http://blog.csdn.net/chaofanwei/article/details/13018753 ls -l --time-style=x ...

  4. JS中常用的几种时间格式处理-【笔记整理】

    //此处整理点平时常用到的时间格式处理方法 ------------------------------------------- //时间格式化函数 Date.prototype.format = ...

  5. mvc页面中,显示自定义时间格式

    1.在model中,遇到datetime格式的字段,用string来表示 model中 /// <summary> /// 开始时间 /// </summary> [Displ ...

  6. C#中获取不同的日期时间格式

    通过调用类中的各种方法我们可以获取不同的时间: 如:日期(2008-09-04).时间(12:12:12).日期+时间(2008-09-04 12:11:10)等. //获取日期+时间 DateTim ...

  7. sql server中format函数的yyyyMMddHHmmssffff时间格式兼容旧版sql写法

    问题:博主看到项目脚本,有些地方使用了format函数来把当前日期转换成yyyyMMddHHmmssffff的格式,但在测试环境数据库是sql 2008 r2,是不支持format这个函数的.脚本会报 ...

  8. 开发中使用Gson的实例(时间格式错误解决方法)

    ...... // 通过GSON解析,使用4个实体类来接受(TotalResponse.TradeRateResponse.TradeRatess.TbTradeRates) GsonBuilder ...

  9. Magicodes.IE在.NET Core中通过请求头导出多种格式文件

    前言 在2.2里程碑中我们增加了一些新的功能,正如标题所写通过请求头进行导出我们不同格式的文件.下面我们来看一下如何使用.通过这种方式无论是对我们的数据多用途,还是说对我们的数据校验都做到了轻松易配. ...

随机推荐

  1. [React Router v4] Render Multiple Components for the Same Route

    React Router v4 allows us to render Routes as components wherever we like in our components. This ca ...

  2. 从多路搜索树到 B-树

    1. 什么是 B 树 B 树是为磁盘或其他直接存取的辅助存储设备而设计的一种平衡二叉树: B 树类似于红黑树,但它们在降低磁盘 I/O 操作数方面要更好一点, 许多数据库系统使用 B 树或者 B 树的 ...

  3. 如何去掉windows2003的自动锁定(每离开一会都会出现这个界面,不想让它出现)

    http://zhidao.baidu.com/link?url=SOCv57C-hX_3f0Xl0J0RFIVXpowXk73zdQd2B-wMUzYOm5E_N397bw_UkX4uLPlAiWQ ...

  4. [Node.js] Identify memory leaks with nodejs-dashboard

    In this lesson, I introduce a memory leak into our node.js application and show you how to identify ...

  5. VO对象通过groovy模板映射XML文件

    介绍 之前写过JAVA+XSLT相关的技术博客,近期研究了一个开源工具包org.codehaus.groovy,处理VO对象和XML文件映射很方便. 简言之:将VO对象中的属性(包含Collectio ...

  6. 电子商务网站的设计与实现(四):项目名称malling和一期开发计划

    项目名称:小雷B2C商城系统代号:malling,mall商城的意思,加个ing表示正在进行.更主要的是与"morning"发音很像,非常容易记忆.morning是"早上 ...

  7. hive character '' not supported here

    把在windows环境下编写的sql使用UTF-8无BOM保存后,再上传执行即可

  8. leetcode先刷_Valid Sudoku

    我没有看到这个问题,这使其在现货需求数独,害怕一直没敢做.后来我发现原来的标题就是这么简单.推断现在只有数字全不符合的就可以了棋盘上的形势的要求. 是不是正确的三个周期..人是不能满意地看到每一行.每 ...

  9. Running as a packaged application--- -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n

    19.2 Running as a packaged application If you use the Spring Boot Maven or Gradle plugins to create ...

  10. ashx 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。

    1.点击查看ashx在浏览器中显示的信息 2.自定义协议头 这样问题就搞定了.当然只是我遇到的一种.