Asp.net 根据用户文化转换字符串10/29/2010
如何将英语日期2010年10月29日或任何语言日期转换为用户文化日期格式 我正在使用以下代码Asp.net 根据用户文化转换字符串10/29/2010,asp.net,Asp.net,如何将英语日期2010年10月29日或任何语言日期转换为用户文化日期格式 我正在使用以下代码 CultureInfo cultureInfo = System.Threading.Thread.CurrentThread.CurrentCulture; cultureInfo.DateTimeFormat. string lng = cultureInfo.TwoLetterISOLanguageName; DateTim
CultureInfo cultureInfo = System.Threading.Thread.CurrentThread.CurrentCulture;
cultureInfo.DateTimeFormat.
string lng = cultureInfo.TwoLetterISOLanguageName;
DateTime dateTime = DateTime.Parse("10/29/2010", cultureInfo);
但当我试图解析它时,它会抛出错误
你知道我该如何解决这个问题吗
Thanx与英语(或不变量)区域性一起使用将字符串转换为日期时间,然后可以使用ToString
以用户的日期格式输出
// this is in "d" (= short date) format of the invariant culture
var englishDateString = "10/29/2010";
// convert it to a datetime
var date = DateTime.ParseExact(englishDateString, "d", CultureInfo.InvariantCulture);
// now you can output the date in the user's culture
var localizedDateString = date.ToString("d");
如果希望显式,可以将CultureInfo.CurrentCulture
作为第二个参数添加到,但这不是必需的,因为如果未指定区域性,这是默认值。使用英语(或不变)区域性将字符串转换为日期时间,然后可以使用ToString
以用户日期格式输出
// this is in "d" (= short date) format of the invariant culture
var englishDateString = "10/29/2010";
// convert it to a datetime
var date = DateTime.ParseExact(englishDateString, "d", CultureInfo.InvariantCulture);
// now you can output the date in the user's culture
var localizedDateString = date.ToString("d");
如果希望明确,可以将
CultureInfo.CurrentCulture
作为第二个参数添加到,但这不是必需的,因为如果未指定区域性,这是默认值。以下是解析美国日期的示例:
DateTime.Parse("10/29/2010", new CultureInfo("en-US"));
以下是解析美国日期的示例:
DateTime.Parse("10/29/2010", new CultureInfo("en-US"));
使用
DateTime.ParseExact(“2010年10月29日”,“年月日”,CultureInfo.InvariantCulture)代码>而不是DateTime.Parse
一旦有了日期时间
,它就不再绑定到特定的区域性,而是可以按照您的需要输出。通常,这是使用DateTime.ToString
方法之一或类似快捷方式的,它使用当前线程的区域性
编辑:注意,如果我把月份和日期放在正确的位置,会有帮助。哎哟。使用DateTime.ParseExact(“2010年10月29日”,“年月日”,CultureInfo.InvariantCulture)代码>而不是DateTime.Parse
一旦有了日期时间
,它就不再绑定到特定的区域性,而是可以按照您的需要输出。通常,这是使用DateTime.ToString
方法之一或类似快捷方式的,它使用当前线程的区域性
编辑:注意,如果我把月份和日期放在正确的位置,会有帮助。哎呀。用这个:
public static string ChangeDateToUserFormat(string dateValue, string dateCulture)
{
CultureInfo dateCultureInfo = CultureInfo.GetCultureInfoByIetfLanguageTag(dateCulture);
DateTime date = DateTime.Parse(dateValue, dateCultureInfo);
return date.ToString(CultureInfo.CurrentCulture);
}
例如:
string date = ChangeDateToUserFormat("10\29\2010", "en-US");
使用以下命令:
public static string ChangeDateToUserFormat(string dateValue, string dateCulture)
{
CultureInfo dateCultureInfo = CultureInfo.GetCultureInfoByIetfLanguageTag(dateCulture);
DateTime date = DateTime.Parse(dateValue, dateCultureInfo);
return date.ToString(CultureInfo.CurrentCulture);
}
例如:
string date = ChangeDateToUserFormat("10\29\2010", "en-US");
我在面对日期转换时也有同样的痛苦,我使用了一个函数(下面的代码),您可以根据自己的意愿修改它。尝试一下,或者从中获得一些想法,然后告诉我是否有用
我在面对日期转换时也有同样的痛苦,我使用了一个函数(下面的代码),您可以根据自己的意愿修改它。尝试一下,或者从中获得一些想法,然后告诉我是否有用