Java 格式自定义日期到 MySQL DATETIME

发布于 2024-11-25 12:36:57 字数 166 浏览 0 评论 0原文

我有一个字符串,其值格式为: 01-Jul-2011 12:52:00 。

我想将其格式化以插入到类型为 DATETIME 的 MySQL 数据库中。

我意识到我需要以 01-07-2011 12:52:00 的形式获取它,但我不知道如何做到这一点。

有什么解决办法吗?

I have a String with a value in the format: 01-Jul-2011 12:52:00 .

I would like to format this to be inserted into a MySQL database with the type as DATETIME.

I realise that I need to get it in the form 01-07-2011 12:52:00 but I can't figure out how to do this.

Any solutions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

抱着落日 2024-12-02 12:36:57

@Jigar 是正确的,即使不简洁。但看来您可能需要更多信息,我将把它提供给您。

首先,您不应该尝试格式化日期以适应 mysql。您应该将 Date 作为参数传递给 sql 查询(而不是构建 sql 字符串)。

要解析输入中的日期,请尝试如下代码:

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 调用的示例:

Date date = format.parse(input);
jdbcConnection.createStatement().execute("insert into mytable (id, some_date) values (?, ?)", new Object[]{1, date});

您无需担心如何格式化 mysql 的日期 - 让 JDBC 驱动程序来做给你的。

@Jigar is correct, if not terse. But it looks like you might need more info, and I'm going to spoonfeed it to you.

Firstly, you shouldn't be trying to format a date to suit mysql. You should be passing a Date as a parameter to your sql query (not building up a String of sql).

To parse the date from your input, try code like this:

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"
}

Here's an example of how you make sql calls using a JDBC connector passing parameters:

Date date = format.parse(input);
jdbcConnection.createStatement().execute("insert into mytable (id, some_date) values (?, ?)", new Object[]{1, date});

You don't need to worry about how to format the date for mysql - let the JDBC driver do that for you.

征棹 2024-12-02 12:36:57
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();
}
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();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文