2017-06-17 10 views
0

私はpersiaの日付をGregorianの日付に変換したいと思います。私はこのコードを使用します。ToshortDateString()and CultureInfo.InvariantCulture

public static void GetDate() 
{ 
String persianDate="1384/03/15" 
Datetime dt= GetComponentDate(persianDate); 
} 

DateTime GetComponentDate(string fdate) 
{ 
    DateTime edate; 
    int year = int.Parse(Persia.Number.ConvertToLatin(fdate.Split('/')[0])); 
    int month = int.Parse(Persia.Number.ConvertToLatin(fdate.Split('/')[1])); 
    int day = int.Parse(Persia.Number.ConvertToLatin(fdate.Split('/')[2])); 
    try 
    { 
     System.Globalization.PersianCalendar x = new System.Globalization.PersianCalendar(); 
     DateTime dt = x.ToDateTime(year, month, day, 0, 0, 0, 0, 0); 

     return dt; 

    } 
    catch 
    { 
    } 
    return DateTime.MinValue; 
} 

サーバーでは、このメソッドは正常に実行され、出力は「17/6/2017」です。しかし、別のサーバーでは、このメソッドは動作せず、出力= "15/03/1384"であり、GetComponentDateの使用後にこのコードを使用する必要があります。

((DateTime)dt).ToString(CultureInfo.InvariantCulture); 

2台のサーバーではどのような違いがありますか? 私を助けることができますか?

+0

「機能しない」とはどういう意味ですか?あなたは**いくつかのサンプル入力と 'GetComponentDate'への呼び出しの関連出力を与えることができますか? – Enigmativity

+0

'Persia.DateType.Gregorian'とは何ですか? 'ToString'を呼び出すことは、文として単独で行うべきではありません...' dt'は何ですか?ここには多くの情報が欠落しています。 –

+0

私のコードを更新しました。サーバーでは、私はメソッドGetComponentDateだけを使用して私はshoudコンサートの日付をStringにしたいときに私はShoudの別のサーバーで使用するペルシア語の日付を変換することができます。 2つのサーバーでは何が違うのですか? –

答えて

0

CultureInfo.InvariantCultureを両方のサーバーで動作させるには、「2つのサーバーでは何が違うのですか」と尋ねます。

文化はです。

あなたのweb.configファイル内のグローバリゼーションの行を追加して、アプリの文化を設定することができます。

<configuration> 
    <system.web> 
     <globalization uiCulture="[uiculture]" culture="[culture]" /> 

は、正確な値を持つ[uiculture][culture]を交換してください。米国の文化のための

例えば:

<globalization uiCulture="en-US" culture="en-US"/> 

Hereは、すべての異なる文化のリストです。

+0

なぜ最初のサーバーで私はCultureInfo.InvariantCultureを使用せず、コードは正常に動作していますか?サーバーで文化を設定するにはどうすればいいですか? –

+0

私は多くを検索しました。 webconfigでを使用していますが、これは.ascxページにも影響しません。また、Gloabal.ascxにThread.CurrentThread.CurrentCultureを書きましたが、これも動作しません。 –

+0

2つのサーバでcultutreを比較できますか? –