2017-07-20 8 views
-4

私の日付を英国の日付書式に変換したい。 2016年2月26日の場合は26/02/2016に変換する必要があります。 の場合は2/13/2016、13/02/2016に変換する必要があります。 最終結果は、日時が0の英国形式である必要があります。日付は0のままの英国の日付書式に変換される

コード

string cellvalue; 
string oData = "2/13/2016"; 

if (DateTime.TryParse((string)oData, CultureInfo.CurrentUICulture, styles, out dt)) 
{ 
    cellvalue = dt.ToString("dd/MM/yyyy"); 
    Console.WriteLine(cellvalue + "go to hell"); 
} 
else 
{ 
    cellvalue = oData.ToString(); 
    Console.WriteLine(cellvalue + "go to bokaro"); 
} 
+0

文字列またはdatetimeオブジェクトがありますか – EpicKip

+0

これまでに何を試みましたか?あなたはどのような価値を持っていますか?日付時刻?文字列? –

+0

しかし、上記は26/2/2016では機能しません。それは私に26/2/2016 – Catwoman

答えて

0

Easyyy:

CultureInfo enGB = new CultureInfo("en-GB"); 
string oData = "2/13/2016"; 
DateTime dateValue; 

// Parse date with no style flags. 
dateString = "13/02/2016"; 
DateTime.TryParseExact(oData, "g", enGB, DateTimeStyles.None, out dateValue); 
+0

2/13/2016のためにこの休憩を与えます私たちのフォーマットです – Catwoman

0

私の知る限りは、入力された日付文字列がMM/dd/yyyyであるかどうかは、結果の日付がデフォルト英国フォーマットすなわちdd/MM/yyyyに関係なく、なりたい理解として、 dd/MM/yyyy、元は米国の日付のデフォルトフォーマットです。

あなたは既に試したコードの近くにいました。さらに、入力がUS形式の場合は、米国の文化を使用してDateTimeと解釈し、それからUKに変換するだけです。

var UKCulture = new CultureInfo("en-GB"); 
var USCulture = new CultureInfo("en-US"); 
DateTime dt; 
string cellvalue; 

string oData = "13/2/2016"; 

// First try parsing to UK format 
if (!DateTime.TryParse(oData, UKCulture, DateTimeStyles.None, out dt)) 
{ 
    // If fails, then try US format 
    DateTime.TryParse(oData, USCulture, DateTimeStyles.None, out dt); 
} 

// Once you have DateTime instance, you can do anything. Parsing is over. 
cellvalue = dt.ToString("dd/MM/yyyy"); 
Console.Write(cellvalue); 

だから今、これは両方2/13/201613/2/2016入力の13/02/2016として最終的な値を与えます。

関連する問題