我正在使用人性化器来获取人类友好的字符串,以告知某个日期的时间向后或向前多远。这里有一些例子:
DateTime.UtcNow.AddHours(-30).Humanize() => "yesterday"
DateTime.UtcNow.AddHours(-2).Humanize() => "2 hours ago"
DateTime.UtcNow.AddHours(30).Humanize() => "tomorrow"
DateTime.UtcNow.AddHours(2).Humanize() => "2 hours from now"
DateTimeOffset.AddHours(1).Humanize() => "an hour from now"
该库为不同的文化提供了能力:
public static string Humanize(this DateTime input, bool utcDate = true, DateTime? dateToCompareAgainst = null, CultureInfo culture = null)
我的用法(使用波斯文化)是:
myDate.Humanize(culture: new CultureInfo("fa-IR"))
问题是它在 Visual Studio 2013 的 IIS Express 中运行良好,但在 Windows 8 的 IIS 中显示英文。
所以我的结果是:
"14 days ago" //In IIS
"14 روز پیش" //In Visual Studio 2013