Java 日期 ->到MySql时间

发布于 2024-11-07 07:51:28 字数 128 浏览 0 评论 0原文

我在java中有一个日期格式,我需要将其保存为MySQL中的时间格式。有没有办法从日期中获取时间部分?我知道 Dat.gettime() 返回很长,但我只需要 MySql 中的时间

任何建议...

谢谢大家..

I have a Date format in java that I need to save as a Time format in MySQL. Is there a way to just get the time part from the date? I know Dat.gettime() that returns a long but I just need the Time in MySql

Any suggestions...

Thx all ..

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

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

发布评论

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

评论(6

眼眸里的那抹悲凉 2024-11-14 07:51:28

将PreparedStatement 与从java.util.Date 创建的java.sql.Time 对象一起使用应该可以:

java.util.Date myDate = ....
java.sql.Time theTime = new java.sql.Time(myDate.getTime());
PreparedStatement pstmt = ...
pstmt.setTime(1, theTime);

Using a PreparedStatement together with a java.sql.Time object created from your java.util.Date should work:

java.util.Date myDate = ....
java.sql.Time theTime = new java.sql.Time(myDate.getTime());
PreparedStatement pstmt = ...
pstmt.setTime(1, theTime);
爱,才寂寞 2024-11-14 07:51:28

使用 java.sql.Date 构建 SQL 日期。

long d = date.getTime();
java.sql.Date sqlDate = new java.sql.Date(d);

Use the java.sql.Date to build a SQL Date.

long d = date.getTime();
java.sql.Date sqlDate = new java.sql.Date(d);
时光倒影 2024-11-14 07:51:28

您可以使用 SimpleDateFormat 来格式化日期的时间字段:

SimpleDateFormat sdf =  new SimpleDateFormat("HH:mm:ss" );
String time = sdf.format (  yourDate  );

You could use SimpleDateFormat to format the Time fields of your date:

SimpleDateFormat sdf =  new SimpleDateFormat("HH:mm:ss" );
String time = sdf.format (  yourDate  );
冬天旳寂寞 2024-11-14 07:51:28

根据 JDBC 驱动程序,它可能会省略日期的时间部分,最好使用 java.sql.Timestamp。

java.sql.Timestamp mysqlDate = new java.sql.Timestamp( javaDate.getTime() );

Depending on the JDBC driver, it could omit the time portion of the date, better use java.sql.Timestamp.

java.sql.Timestamp mysqlDate = new java.sql.Timestamp( javaDate.getTime() );
他夏了夏天 2024-11-14 07:51:28

获取日期+时间Mysql

ResultSet rs=....;

Date tg = new Date(rs.getTimestamp("column datetime").getTime());
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm aaa");

String val = sdf.format(tg);

Get Date + Time Mysql

ResultSet rs=....;

Date tg = new Date(rs.getTimestamp("column datetime").getTime());
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm aaa");

String val = sdf.format(tg);
神爱温柔 2024-11-14 07:51:28

与数据库交换数据时,请使用适当的日期类型和对象。不要仅使用字符串或整数来代替合法的类型/类。

java.time

现代方法使用 java.time 类。使用符合 JDBC 4.2 或更高版本的 JDBC 驱动程序,您可以省略 的使用java.sql.Time类,直接使用java.time.LocalTime即可。

遗留类 java.util.Date< /code>表示 UTC 中的日期和时间。转换为现代 java.time 类 (Instant),指定要通过其查看值的时区,并提取当天的时间。

要进行转换,请调用添加到旧遗留类中的新方法。

Instant instant = myJavaUtilDate.toInstant() ;

指定时区。

时区至关重要。对于任何特定时刻,全球各地的日期都会因地区而异。例如,在法国巴黎午夜过后几分钟,又是新的一天“昨天”在魁北克蒙特利尔

大陆/地区格式指定正确的时区名称 ,例如 美国/蒙特利尔非洲/卡萨布兰卡,或太平洋/奥克兰。切勿使用 3-4 个字母的缩写,例如 ESTIST,因为它们不是真正的时区,不是标准化的,甚至不是唯一的( !)。

ZoneId z = ZoneId.of( "America/Montreal" ) ;  // Or "Asia/Kolkata", or "Pacific/Auckland", etc.
ZonedDateTime zdt = instant.atZone( z ) ;

提取不带日期的时间。

LocalTime lt = zdt.toLocalTime() ;

通过调用 setObject 传入您的 PreparedStatement

String sql = "INSERT INTO tbl_ ( time_of_day_ ) VALUES ( ? ) ; " ;
PreparedStatement ps = conn.prepareStatement( sql ) ;
ps.setObject( 1 , lt ) ;  // Call `setObject` to pass a java.time object directly without converting into `java.sql.*` type.
int rows = ps.executeUpdate() ;

以类似的方式获取数据,调用ResultSet::getObject

LocalTime lt = myResultSet.getObject( … , LocalTime.class ) ;

When exchanging data with a database, use appropriate date types and objects. Do not use mere strings or integers instead of legitimate types/classes.

java.time

The modern approach uses java.time classes. With a JDBC driver complying with JDBC 4.2 or later, you can omit the use of java.sql.Time class, and just use java.time.LocalTime directly.

The legacy class java.util.Date represents a date and a time-of-day in UTC. Convert to a modern java.time class (Instant), assign a time zone through which you want to view the value, and extract the time-of-day.

To convert, call new methods added to the old legacy classes.

Instant instant = myJavaUtilDate.toInstant() ;

Assign a time zone.

The time zone is crucial. For any given moment, the date varies around the globe by zone. For example, a few minutes after midnight in Paris France is a new day while still “yesterday” in Montréal Québec.

Specify a proper time zone name in the format of continent/region, such as America/Montreal, Africa/Casablanca, or Pacific/Auckland. Never use the 3-4 letter abbreviation such as EST or IST as they are not true time zones, not standardized, and not even unique(!).

ZoneId z = ZoneId.of( "America/Montreal" ) ;  // Or "Asia/Kolkata", or "Pacific/Auckland", etc.
ZonedDateTime zdt = instant.atZone( z ) ;

Extract the time-of-day without a date.

LocalTime lt = zdt.toLocalTime() ;

Pass into your PreparedStatement by calling setObject.

String sql = "INSERT INTO tbl_ ( time_of_day_ ) VALUES ( ? ) ; " ;
PreparedStatement ps = conn.prepareStatement( sql ) ;
ps.setObject( 1 , lt ) ;  // Call `setObject` to pass a java.time object directly without converting into `java.sql.*` type.
int rows = ps.executeUpdate() ;

Fetch data in a similar manner, calling ResultSet::getObject.

LocalTime lt = myResultSet.getObject( … , LocalTime.class ) ;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文