Asp.net 根据用户文化转换字符串10/29/2010

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

如何将英语日期2010年10月29日或任何语言日期转换为用户文化日期格式

我正在使用以下代码

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

我在面对日期转换时也有同样的痛苦,我使用了一个函数(下面的代码),您可以根据自己的意愿修改它。尝试一下,或者从中获得一些想法,然后告诉我是否有用



我在面对日期转换时也有同样的痛苦,我使用了一个函数(下面的代码),您可以根据自己的意愿修改它。尝试一下,或者从中获得一些想法,然后告诉我是否有用