2015-02-11 150 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

相关问题