2015-02-11 145 views
0

我在將基於字符串的日期時間格式轉換爲mysql日期時間格式時遇到困難。如何將字符串轉換爲mysql日期時間格式?

我嘗試以下

str latesttime = "2\/11\/2015 8:04:06 PM"; 
string formatForMySql = Convert.ToDateTime(latestscreentime); 

不轉換。也試圖與解析 而且還

SimpleDateFormat from = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss tt"); 
SimpleDateFormat to = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
Date date = from.parse(latestscreentime);  // 01/02/2014 
String mysqlString = to.format(date); 

這裏的錯誤是

'的SimpleDateFormat' 找不到(是否缺少使用 指令或程序集引用?)

但我下載vjslib.dll並添加using SimpleDateFormat;

S任何人都可以幫助我解決這個錯誤?

回答

0

首先改變你的字符串爲DateTime

var latesttime = @"2/11/2015 8:04:06 PM"; 
DateTime dateValue = DateTime.Parse(latesttime); 

現在你可以簡單地做,

var sqlDateFormat= dateValue.ToString("yyyy-MM-dd HH:mm"); 
+0

非常感謝它幫助解決了這個問題。 – 2015-02-11 22:59:28

0

我知道這是一個有點太晚了,但我想也指出了一些其他問題。

首先,你不能有一個string作爲;

string latesttime = "2\/11\/2015 8:04:06 PM"; 

,因爲既然是regular string literal,你需要逃避你\角色,因爲它是一個escape sequence字符。你可能會想逃避它作爲"2\\/11\\/2015 8:04:06 PM"或使用逐字字符串@"2\/11\/2015 8:04:06 PM"

我不認爲你的Convert.ToDateTime()曾經工作與字符串,因爲沒有CultureInfod\\/MM\\/yyyy h:mm:ss tt格式爲standard date and time format

取而代之,您可以使用自定義日期和時間解析DateTime.TryParseExact method,如;

string s = @"2\/11\/2015 8:04:06 PM"; 
DateTime dt; 
if(DateTime.TryParseExact(s, @"d\\/MM\\/yyyy h:mm:ss tt", 
          CultureInfo.InvariantCulture, 
          DateTimeStyles.None,out dt)) 
{ 
    Console.WriteLine(dt); 
} 

由於\是定製的日期和時間解析轉義字符,則需要用雙斜線逃脫爲\\

.NET Framework中沒有SimpleDateFormat類。我認爲你在混合Java的SimpleDateFormat class

在.NET Framework中,通常是DateTime.ToString method用於您試圖獲取DateTime的字符串表示形式。解析後,你可以做這些;

dt.ToString("dd/MM/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture); 
// Result will be 02/11/2015 08:04:06 PM 

dt.ToString("yyyy-MM-dd HH:mm:ss"); 
// Result will be 2015-11-02 20:04:06 

我在第一實施例中使用InvariantCulture作爲IFormatProvider因爲The "/" custom format specifier具有特殊的含義如與當前區域性或供給培養日期分隔符代替我。這就是爲什麼它可能在不同的文化中產生不同的結果。

+1

現在,謝謝你,我清楚地理解了我的問題。 – 2015-02-13 15:14:16

+0

@rajaking很高興幫助。 – 2015-02-14 09:15:32

相關問題