我正在使用humanizer获取人类友好的字符串,告诉他们某个日期的时间有多远。这里有一些例子:
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
答案 0 :(得分:0)
这个问题现在看起来已经很老了,可能已经解决了。在.NET Framework 3.5和更早版本中,Windows操作系统和.NET Framework都提供了文化数据。也许这是通过IIS运行与通过Visual Studio在本地运行之间存在差异的原因。
如果您的项目无法更新,这里有一个解决方法来添加波斯语。 https://www.codeproject.com/Articles/32096/How-to-Set-PersianCalendar-to-CultureInfo