0

我在 SQL Server 的日期时间与 java 之间转换时遇到问题java.util.date,已解决将日期时间解析为 JAVA 日期,但现在问题是我的datetime(2013 年 1 月 1 日)转换为Tue Jan 01 00:00:00 PKT 2013我希望它01 Jan 2013是可能的还是我必须使用字符串...我尝试了JODA 时间,但问题仍然存在。请引导我走正确的道路

编辑:

datetime在 SQL 服务器数据库中有格式,dd MMM yyyy例如01 Jan 2013,我现在必须从SqlRowSet类似的地方获取值,rs.getString(4)才能将我从数据库获取的日期时间字符串转换为java.util.date我使用上述问题中的指南所做的,但问题是它添加区域和秒数的附加信息,例如

2013 年 1 月 1 日 SQL Server 格式日期时间

2013 年 1 月 1 日星期二 00:00:00 PKT java.util.date 格式

我想要的java.util.date01 Jan 2013

4

4 回答 4

2

A java.util.Date is internally represented by a number (a long), not by fields for day, month, hour, etc... You obtain those by formating this number with a SimpleDateFormat. The string you are getting now is a default representation obtained by using Date.toString(). If you want it formatted differently, use the SimpleDateFormat.

于 2012-12-20T09:30:35.107 回答
1

http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html将完成这项工作。

SimpleDateFormat sdf = new SimpleDateFormat( "dd MMM yyyy" );
System.out.println( sdf.format( date ) );

只要您想要的格式与特定的语言环境匹配,也可以使用http://docs.oracle.com/javase/1.4.2/docs/api/java/text/DateFormat.html 。

这是一个接近您想要的示例:

DateFormat df = DateFormat.getDateInstance( DateFormat.LONG, Locale.UK );
System.out.println( df.format( date ) );

编辑:为了从行集中获取日期,只需调用

Date date = rs.getDate(4);

它会根据您的需要返回日期对象。

于 2012-12-20T10:09:58.100 回答
0

在我看来,最好使用 Joda Time API 来轻松操作日期时间字段。这个 API 对此非常有用。在包中使用日期时间格式化程序或简单的日期时间格式化程序类java.util.Date。这将更有利于为您获得所需的结果。

于 2012-12-20T09:43:01.523 回答
0

@Jakub 正确地提到了。您可以使用java.text.SimpleDateFormat

java.util.Date today=new java.util.Date();
SimpleDateFormat format=new SimpleDateFormat("dd MMM yyyy"); 
System.out.println(format.format(today));

我用它来格式化今天的日期。您可以从数据库中检索日期并以类似的方式检索。但请记住,如果您使用rs.getDate()它,它会回报您java.sql.Date。因此,您可以继续。

于 2012-12-20T10:20:28.863 回答