2

我正在使用人性化器来获取人类友好的字符串,以告知某个日期的时间向后或向前多远。这里有一些例子:

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
4

1 回答 1

0

这个问题现在看起来很老了,可能已经解决了。在 .NET Framework 3.5 和更早版本中,文化数据由 Windows 操作系统和 .NET Framework 提供。也许这就是通过 IIS 运行和通过 Visual Studio 在本地运行之间存在差异的原因。

如果您的项目无法更新,这里有一个解决方法来添加波斯语。 https://www.codeproject.com/Articles/32096/How-to-Set-PersianCalendar-to-CultureInfo

于 2020-09-01T09:50:31.133 回答