我知道这是一个常见问题,但我找不到如何java.util.Date
在 MySQL 中存储对象。
是否可以?如果不是你推荐我什么样的解决方案,因为我需要这个准确的时间存储在我的 MySQL 数据库中。
我知道这是一个常见问题,但我找不到如何java.util.Date
在 MySQL 中存储对象。
是否可以?如果不是你推荐我什么样的解决方案,因为我需要这个准确的时间存储在我的 MySQL 数据库中。
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
您可以使用 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");
在大多数情况下,您不应该使用Date
对象,java.util.Dat
e 不是不可变的;更好的是使用原语long
,它将日期存储为UTC时间。(自 1.1.1970 UT 午夜以来的毫秒数)这与本地时间、白天节省无关。等等
您可以long
通过方法getTimestamp()
从临时Date
对象中获取值。(或直接或间接来自GregorianCalendar
)
从较长的 utc 时间戳,您可以轻松创建所需的任何 Date 对象(例如在 DB 中)。
如果您需要当地时间,事情会变得复杂得多。所以最好的建议是仅将本地时间用于显示(例如 UI)目的,并在显示前立即转换为本地时间。最好不要在当地时间存储日期)
看看日历类。
只需调用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
不止一次使用它,那么最好将它作为一个单独的变量,而不是继续重新创建它。
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 函数。