-5

我知道这是一个常见问题,但我找不到如何java.util.Date在 MySQL 中存储对象。

是否可以?如果不是你推荐我什么样的解决方案,因为我需要这个准确的时间存储在我的 MySQL 数据库中。

4

5 回答 5

0
public static void main(String[] args) {
        Date date = new Date() ;
        System.out.println(date);
        // or use calendar
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, 2013);
        cal.set(Calendar.MONTH, 1);
        cal.set(Calendar.DATE, 13);
        cal.set(Calendar.HOUR, 23);
        cal.set(Calendar.MINUTE, 52);
        cal.set(Calendar.SECOND, 10);
        date = cal.getTime();
}

给你Sun Jan 13 23:48:59 IST 2013

于 2013-01-13T18:20:10.543 回答
0

您可以使用 SimpleDateFormat:

SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY-MM-DD HH:mm:ss");
System.out.println(dateFormat.format(new Date()));

如果您,正如我所怀疑的那样,想将字符串转换为日期对象,那么您仍然可以使用 SimpleDateFormat:

SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY-MM-DD HH:mm:ss");
Date d = dateFormat.parse("2011-02-21 23:22:10");
于 2013-01-13T18:22:50.510 回答
0

在大多数情况下,您不应该使用Date对象,java.util.Date 不是不可变的;更好的是使用原语long,它将日期存储为UTC时间。(自 1.1.1970 UT 午夜以来的毫秒数)这与本地时间、白天节省无关。等等

您可以long通过方法getTimestamp()从临时Date对象中获取值。(或直接或间接来自GregorianCalendar

从较长的 utc 时间戳,您可以轻松创建所需的任何 Date 对象(例如在 DB 中)。

如果您需要当地时间,事情会变得复杂得多。所以最好的建议是仅将本地时间用于显示(例如 UI)目的,并在显示前立即转换为本地时间。最好不要在当地时间存储日期)

于 2013-01-13T18:33:06.227 回答
-1

看看日历类。

只需调用Calendar.getInstance()自己获取一个实例,然后您就可以使用它get(Calendar.YEAR);来获取年份、get(Calendar.DAY);获取日期等。

您可以使用该set()方法以类似的方式设置时间。

如果要将其转换为日期对象,请使用该getTime();方法,如果要将日期格式化为字符串,请查看SimpleDateFormat.

作为一般示例:

Calendar c = Calendar.getInstance();
c.set(2012, 11, 1, 10, 10); //Sets c to 10:10, 1st December 2012
Date date = c.getTime(); //If you want the calendar object as a date
int day = c.get(Calendar.DAY); //Get the current day in the calendar as an integer
String format = new SimpleDateFormat("HH:mm:ss DD-MM-YYYY").format(c.getTime()); //Print date as a string

您还可以使用SimpleDateFormat对象来解析日期,如下所示:

Date d = new SimpleDateFormat("HH:mm:ss DD-MM-YYYY").parse("10:10:00 01-12-12");

如果您SimpleDateFormat不止一次使用它,那么最好将它作为一个单独的变量,而不是继续重新创建它。

于 2013-01-13T18:21:16.407 回答
-2
class Date {
    int year;
    int month;
    int day;

    int hour;
    int minute;

    public Date(int year, int month, int day, int hour, int minute){
        this.year = year;
        this.month = month;
        this.day = day;
        this.hour = hour;
        this.minute = minute;
    }

}

现在您可以创建它的实例,并传递它。此外,您可以创建 getter/setter 或 toString 函数。

于 2013-01-13T18:21:16.690 回答