Java/Servlet:获取当前的sql.Date

Art*_*mij 7 java sql datetime locale

我需要做的是:

1)从请求中获取用户的语言环境.

2)根据用户的语言环境,使用当前日期和时间创建新的sql.Date对象

3)将其写入MySQL db,列类型:TIMESTAMP

我得到的是:

java.util.Locale locale = request.getLocale();

java.text.DateFormat dateFormat =
java.text.DateFormat.getDateTimeInstance(
                        java.text.DateFormat.LONG, java.text.DateFormat.LONG, locale );

java.util.Date date = new java.util.Date();

java.sql.Date sqlDate = new java.sql.Date( date.getTime() );
Run Code Online (Sandbox Code Playgroud)

日期还可以,但是时间有问题 - 总是凌晨12:00:00.

有什么建议?有没有更有效的方法来做到这一点?

小智 17

即使是更紧凑的解决方案;)

java.sql.Date timeNow = new Date(Calendar.getInstance().getTimeInMillis());
Run Code Online (Sandbox Code Playgroud)


小智 9

还有一个简单的解决方案.使用此代码使用java.util.Date获取当前日期

java.util.Calendar cal = java.util.Calendar.getInstance();
java.util.Date utilDate = cal.getTime();
java.sql.Date sqlDate = new Date(utilDate.getTime());
Run Code Online (Sandbox Code Playgroud)


Pau*_*lin 4

如果需要时间,则需要 java.sql.Timestamp 而不是 java.sql.Date,以及数据库中的时间戳列。