私は、01-Jul-2011 12:52:00という形式の値を持つStringを持っています。Java形式のカスタム日付をMySQLにDATETIME
これをDATETIMEのようなタイプのMySQLデータベースに挿入するようにフォーマットしたいと思います。
私はそれを01-07-2011 12:52:00の形式で入手する必要があることを認識していますが、これを行う方法を理解できません。
すべてのソリューションはありますか?簡潔でない場合
私は、01-Jul-2011 12:52:00という形式の値を持つStringを持っています。Java形式のカスタム日付をMySQLにDATETIME
これをDATETIMEのようなタイプのMySQLデータベースに挿入するようにフォーマットしたいと思います。
私はそれを01-07-2011 12:52:00の形式で入手する必要があることを認識していますが、これを行う方法を理解できません。
すべてのソリューションはありますか?簡潔でない場合
@Jigarは、正しいです。しかし、より多くの情報が必要なように見えます。私はそれをあなたにスプーンフィードします。
まず、mysqlに合うように日付をフォーマットしないでください。 DateをSQLクエリのパラメータとして渡す必要があります(sqlのStringを構築しないでください)。
このようなコードを試してみてください、あなたの入力から日付を解析するには、次の
Date date = format.parse(input);
jdbcConnection.createStatement().execute("insert into mytable (id, some_date) values (?, ?)", new Object[]{1, date});
あなたドン」:
public static void main(String[] args) throws Exception {
String input = "01-Jul-2011 12:52:00";
SimpleDateFormat format = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss");
Date date = format.parse(input);
System.out.println(date); // "Fri Jul 01 12:52:00 EST 2011"
}
は、ここでは、パラメータを渡すJDBCコネクタを使用して、SQL呼び出しを行う方法の例ですmysqlの日付を書式設定する方法について心配する必要はありません.JDBCドライバはそれをあなたに任せます。
I suppose you mean you need to get the form "2011-07-01 12:52:00"? Here is a some example to convert between the two date representations:
String input = "01-Jul-2011 12:52:00";
java.util.Locale locale = new java.util.Locale("EN", "gb");
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd-MMMM-yy HH:mm:ss", locale);
try
{
java.util.Date date = sdf.parse(input);
java.text.SimpleDateFormat sdf2 = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss", locale);
String output = sdf2.format(date);
System.out.println("input: " + input + "\noutput: " + output);
}
catch (java.text.ParseException e)
{
// error handling goes here
e.printStackTrace();
}
はい、JDBCing +1の間にフォーマットについて心配する必要はありません。 –
ありがとうございました!これは動作します – RobMunfy