我希望将我的日期转换为英国日期格式。 例如,如果它是26/2/2016那么它应该转换为2016年2月26日。 如果它是2/13/2016那么它应该转换为2016年2月13日。 最终结果应为英国格式,日期和月份保留为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 :(得分: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);
答案 1 :(得分:0)
据我了解,无论输入日期字符串是dd/MM/yyyy
还是MM/dd/yyyy
,前者都是美国的默认格式,您希望生成日期为默认的英国格式,即dd/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/2016
输入提供了13/2/2016
的最终值。