2010-11-10 49 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