.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") }
});

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

时间: 2024-12-10 15:13:54

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

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

本文转自:http://blog.sina.com.cn/s/blog_8e21864f01014u9h.html Linux修改环境变量,很简单但很重要 一.Linux的变量种类 按变量的生存周期来划分,Linux变量可分为两类: 1. 永久的:需要修改配置文件,变量永久生效. 2. 临时的:使用export命令行声明即可,变量在关闭shell时失效. 二.设置变量的三种方法 1. 在/etc/profile文件中添加变量[对所有用户生效(永久的)] 用VI在文件/etc/profile文件中

EasyUI的DataGrid日期列(datebox)正确显示json时间格式

问题描述: 前端使用EasyUI,后台使用Spring MVC, 数据库里面存储的时间格式为:2014-06-10,但是后台返回给前台页面的数据是json格式的,类似于:1402367297000的形式,日期列datebox是无法解析的.具体如下图: 自己也是EasyUI小白,网上查查资料,倒腾下总算搞出来了,这里做下记录. 一般情况下我们所需的日期格式都是:2014-02-02或者2014/09/09形式的,因此首先要考虑实现一个添加日期格式化的插件. jQuery日期格式化 在自己的js中添

格式化友好时间格式

<td height="40" title="<{$rs.regtime|date='Y-m-d H:i:s',###}>"><{$rs.regtime|mdate}></td> /** * 格式化友好时间格式 * @param unknown $time * @return string */function mdate($time = NULL) {    $text = '';    $time = $time

jsp页面中利用EL表达式实现时间格式转换

从数据库中取出的String类型的数据:2015-04-29 17:47:00.0 理想展现形式:2015-04-29 17:47 只需要两步就可以实现哦: first:引入标签库 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefi

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

//此处整理点平时常用到的时间格式处理方法 ------------------------------------------- 1 //时间格式化函数 2 Date.prototype.format = function (format) { 3 var o = { 4 "M+": this.getMonth() + 1, //month 5 "d+": this.getDate(), //day 6 "h+": this.getHours(

swift 显示友好时间

需求: swift开发,想显示如「24秒前」.「15分钟前」.「今天 14:15」这样的时间称呼. 直接上代码 func friendlyTime(dateTime: String) -> String { let dateFormatter = NSDateFormatter() dateFormatter.locale = NSLocale(localeIdentifier: "zh_CN") dateFormatter.setLocalizedDateFormatFromT

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

问题:博主看到项目脚本,有些地方使用了format函数来把当前日期转换成yyyyMMddHHmmssffff的格式,但在测试环境数据库是sql 2008 r2,是不支持format这个函数的.脚本会报错: 'format' 不是可以识别的 内置函数名称. 'format' is not a recognized built-in function name. 解决方案:由于低版本的SQL不支持format,例如sql 2008\2005\2000,需要使用其他方法来代替.博主经过试验,使用了co

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

...... // 通过GSON解析,使用4个实体类来接受(TotalResponse.TradeRateResponse.TradeRatess.TbTradeRates) GsonBuilder gsonBuidler = new GsonBuilder();//使用GsonBuilder来创建Gson,可以设置时间转换格式. gsonBuidler.setDateFormat("yyyy-MM-dd HH:mm:ss"); Gson gson = gsonBuidler.crea

Springboot中设置返回数据的时间格式

jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 原文地址:https://www.cnblogs.com/qingmuchuanqi48/p/12262845.html