我有一个字符串格式的日期(即荷兰语),如"7 juli 2013".我想用英文格式转换它."Convert.toDateTime(strValue)抛出异常,因为它只转换英文格式.我也试试这个
string strValue = "7 juli 2013";
CultureInfo ci = new CultureInfo("en-US");
strValue = strValue.ToString(ci);
Run Code Online (Sandbox Code Playgroud)
但这不起作用.转换它的方法是什么?
string strValue = "7 juli 2013";
// Convert to DateTime
CultureInfo dutch = new CultureInfo("nl-NL", false);
DateTime dt = DateTime.Parse(strValue, dutch);
// Convert the DateTime to a string
CultureInfo ci = new CultureInfo("en-US", false);
strValue = dt.ToString("d MMM yyyy", ci);
Run Code Online (Sandbox Code Playgroud)
首先将字符串转换为a DateTime,然后.ToString的DateTime!
而且,一般来说,Convert.ToDateTime仅使用英语是错误的.你使用的重载使用你的电脑的当前文化(所以在我的电脑上它使用意大利语),并有Convert.ToDateTime(string, IFormatProvider)超载接受一个CultureInfo.
多语言......但请注意,这是错误的!你不能确定一个单词在不同的地方没有不同的含义!
// The languages you want to recognize
var languages = new[] { "nl-NL", "it-IT" };
DateTime dt = DateTime.MinValue;
bool success = false;
foreach (var lang in languages)
{
if (DateTime.TryParse(strValue, new CultureInfo(lang, false), DateTimeStyles.AssumeLocal, out dt))
{
success = true;
break;
}
}
if (success)
{
CultureInfo ci = new CultureInfo("en-US", false);
strValue = dt.ToString("d MMM yyyy", ci);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2493 次 |
| 最近记录: |