2012-12-20 52 views
0

我有一个问题,SQL服务器的日期时间之间的转换到Java的java.util.date已解决Parse Datetime to JAVA Date但现在的问题是我datetime(2013年1月1日)被转换为Tue Jan 01 00:00:00 PKT 2013取出秒和区域信息我想这是像01 Jan 2013是否有可能或我不得不使用字符串... 我试过JODA time但问题依然存在。请指导我通过正确的路径从日期JAVA

编辑:

我有datetime格式的SQL服务器数据库为dd MMM yyyy01 Jan 2013我不得不从SqlRowSetrs.getString(4)现在的价值,而我所获得的日期时间字符串转换从数据库到java.util.date,我没有使用在上述问题的指导方针,但问题是它增加了区域的其他信息和secods像

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

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

我想是的java.util.date要像01 Jan 2013

+0

请说明一下:你是否想把你的java.lang.Date实例作为一个字符串输出到文件,屏幕或指定格式的wahtever中? – ppeterka

+0

没有理解你的问题。在这里输入你的datetime sql server conf。 –

+0

更新了问题 – dakait

回答

2

一个java.util.Date内部有一个数字来表示(a long),而不是通过日期,月份,小时等字段...您通过将此数字格式化为SimpleDateFormat来获得这些数字。您现在得到的字符串是使用Date.toString()获得的默认表示。如果您希望格式不同,请使用SimpleDateFormat

0

在我看来betetr使用Joda时间API来轻松处理日期时间字段。这个API对此非常有用。在java.util.Date包中使用Date Time格式器或简单的日期时间格式器类。这对您获得理想的结果会更有帮助。

0

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); 

,它将返回日期对象就像你需要它一样。

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。因此,你可以继续。