2011-05-22 123 views
0

日期格式我有我的数据库中的数据以这种格式帮助需要在Java

18-NOV-10

我有相同的格式传递到java.util.Date这样

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

使得java.util.Date的结果是这样的18-NOV-10

这是可能的?

我试过这样

String strDate = "12-NOV-07"; 

    SimpleDateFormat sdfSource = new SimpleDateFormat("dd-MMM-yy"); 

    Date date = sdfSource.parse(strDate); 

    System.out.println(date); 

但我得到的结果为 “周一11月12日00:00:00北京时间2007年” 我希望它只是 12-NOV-07"

+3

您正在将日期作为文本存储在数据库中,而不是DateTime? – tofutim 2011-05-22 08:13:56

+0

你从“12-NOV-07”开始,期望的结果是“12-NOV-07”?我不明白。 – whiskeysierra 2011-05-22 08:29:26

回答

0

正如其他人所指出的那样,你应该存储你的日期为日期,而不是字符串;不过...

如果你想打开一个Date回一个字符串中的格式,你可以使用以下方法:如果你需要,而不是可能将在5,只需使用toUpperCase()结果字符串上

DateFormat formatter = new SimpleDateFormat("dd-MMM-yy"); 
Date date = new Date(); 
String dateStr = formatter.format(date); // Gives "22-May-11" 

0
DateFormat sdf = new SimpleDateFormat("dd-MMM-yy"); 
Date d = sdf.parse("18-NOV-10"); 
+0

我试过了你的程序,但是我得到的是Thu Nov 18 00:00:00 IST 2010,我只想当作18-NOV-10 – Kiran 2011-05-22 08:19:52

+0

我不明白你需要那个字符串,那么你为什么要转换成日期? – 2011-05-22 08:23:15

+0

我有一个方法列表getSummary(Date fromDate,Date toDate),这是在java.util.Date格式和数据库中的数据是18-NOV-11格式 – Kiran 2011-05-22 08:29:35

1

您可以使用java.text.DateFormat中(实际上的SimpleDateFormat)来把你带到你想要去的,但也许你不应该存储日期为数据库中的字符串。它会做输出和解析。

SimpleDateFormat sdf = 
      new SimpleDateFormat("DD-MMM-YY"); 
Date parsed = sdf.parse(dateString); 

http://javatechniques.com/blog/dateformat-and-simpledateformat-examples/

一旦你的日期,你可以把它变成你想要的格式,但它会在内存中Date对象举行。您可以在形式得到它,你想使用

String dateString = sdf.format(parsed); 
0

改为尝试System.out.println(sdfSource.format(date).toUpperCase());Date对象将始终有一个时间组件;没有办法“禁用”该功能。你可以做的是在计算和显示中忽略它。如果您使用的所有对象都设置为一天中的同一时间,则可以安全地忽略比较中时间组件的影响。如果仔细观察,您的Date对象的时间部分设置为午夜。