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 に答える