2010-11-10 79 views
1

我如何转换的英语日期10/29/2010或将字符串转换10/29/2010

我使用下面的代码

CultureInfo cultureInfo = System.Threading.Thread.CurrentThread.CurrentCulture; 
      cultureInfo.DateTimeFormat. 
      string lng = cultureInfo.TwoLetterISOLanguageName; 
      DateTime dateTime = DateTime.Parse("10/29/2010", cultureInfo); 
任何语言日期用户文化的日期格式

但它会在我试图解析它时抛出错误。

任何想法我怎么能解决这个问题

感谢名单

回答

3

使用ParseExact英语(或不变)文化字符串转换为日期时间,那么你就可以在用户的​​日期使用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.CurrentCultureToString,但它不是必需的,因为这是默认的,如果没有指定的文化。

1

这里的解析美国最新的一个例子:

DateTime.Parse("10/29/2010", new CultureInfo("en-US")); 
0

使用DateTime.ParseExact("10/29/2010", "MM/dd/yyyy", CultureInfo.InvariantCulture);,而不是DateTime.Parse

一旦你有一个DateTime,它不再绑定到特定的文化,但可以输出但是你想要它。通常,这是使用DateTime .ToString方法之一,或者使用当前线程的区域性的.ToShortDateString()等快捷方式。

编辑:请注意,如果我把月份和日期放在正确的位置,它会有所帮助。哎呦。

0

使用此:

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

我面临的日期转换,我使用的功能(下面的代码),因为你愿意,你可以修改它,当有同样的痛。尝试或从中获得灵感,让我知道,如果它是有用的


Imports Microsoft.VisualBasic Imports System.Globalization Public Class DatumKonvert1 
Public Shared Function DK1(ByVal myDMstring As String) As Date 
    Dim source As String = myDMstring 
    Dim d As DateTime = DateTime.ParseExact(source, "d'/'M'/'yyyy", CultureInfo.InvariantCulture) 
    Dim resultMydate As String = d.ToString("M'/'d'/'yyyy") 
    Dim mdx = DateTime.ParseExact(resultMydate, "M'/'d'/'yyyy", CultureInfo.InvariantCulture) 
    Return mdx  End Function End Class