我在将基于字符串的日期时间格式转换为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;
那么任何人都可以帮助我解决这个错误吗?
答案 0 :(得分: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");
答案 1 :(得分: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()
曾使用该字符串,因为没有CultureInfo
d\\/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
的字符串表示时,通常使用 DateTime.ToString
method。解析后,您可以执行这些操作;
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具有特殊含义,因为将我替换为当前文化或提供的文化日期分隔符。这就是为什么它可能在不同的文化中产生不同的结果。