如何根据文化解析 DateTime 字符串?
How to parse a DateTime string based on culture?
嗯,我正在为 windows phone 8.1 WinRT 创建一个应用程序。
我最初保存了一个基于 en-US 文化的 Datetime.now(),但后来文化发生了变化,当我尝试解析 DateTime.Parse()
中保存的字符串时,我得到一个格式异常。
//Setting en-US culture
var culture = new CultureInfo("en-US");
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = culture.Name;
//Saving DateTime.Now in a string format
String usTime = DateTime.Now.ToString();
//Changing it to the de-DE culture
culture = new CultureInfo("de-DE");
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = culture.Name;
//Now trying to parse the usTime
DateTime deTime = DateTime.Parse(usTime);
//Here I get an error saying format exception.
我能告诉它如何解析 usTime 字符串并将其转换为 deTime DateTime 吗?
您可以将 IFormatProvider
传递给 DateTime.Parse
var cultureUS = new CultureInfo("en-US");
//Now trying to parse the usTime with US culture format provider
DateTime deTime = DateTime.Parse(usTime, cultureUS);
嗯,我正在为 windows phone 8.1 WinRT 创建一个应用程序。
我最初保存了一个基于 en-US 文化的 Datetime.now(),但后来文化发生了变化,当我尝试解析 DateTime.Parse()
中保存的字符串时,我得到一个格式异常。
//Setting en-US culture
var culture = new CultureInfo("en-US");
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = culture.Name;
//Saving DateTime.Now in a string format
String usTime = DateTime.Now.ToString();
//Changing it to the de-DE culture
culture = new CultureInfo("de-DE");
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = culture.Name;
//Now trying to parse the usTime
DateTime deTime = DateTime.Parse(usTime);
//Here I get an error saying format exception.
我能告诉它如何解析 usTime 字符串并将其转换为 deTime DateTime 吗?
您可以将 IFormatProvider
传递给 DateTime.Parse
var cultureUS = new CultureInfo("en-US");
//Now trying to parse the usTime with US culture format provider
DateTime deTime = DateTime.Parse(usTime, cultureUS);