2017-07-20 53 views
-4

我希望將我的日期轉換爲英國日期格式。 舉例如果26/2/2016那麼它應該被轉換爲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

你有一個字符串或日期時間對象 – 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

據我明白你想要得到的日期是在默認的英國格式即dd/MM/yyyy不管輸入日期字符串是MM/dd/yyyydd/MM/yyyy,前者是美國日期的默認格式。

你已經接近你已經試過的代碼。此外,您需要一件事 - 如果輸入是美國格式,請使用美國文化解析爲DateTime,然後簡單轉換爲英國。

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); 

所以現在這給最終值作爲13/02/2016兩個2/13/201613/2/2016投入。