从日期开始以DD-MON-YY的格式获取字符串

时间:2014-11-23 20:47:59

标签: java date formatting gregorian-calendar

我有以下代码生成一个随机日期,但我不知道如何以DD-MON-YY(例如12-NOV-12)的形式显示它,这恰好是SQL日期的标准格式(即最后我计划将这些数据与JDBC一起传递到oracle数据库中)。

GregorianCalendar gc = new GregorianCalendar();

gc.set(gc.YEAR,  randBetween(1900, 2015)); //randBetween creates a random number between the two

gc.set(gc.DAY_OF_YEAR, randBetween(1, gc.getActualMaximum(gc.DAY_OF_YEAR)));

//Mysterious formatting needed here

String s = //date would go here in the DD-MON-YY format

无论如何,重点是我已经尝试了很多方法来格式化它,而我最接近它的方法是DD-MM-YY(例如12-12-12)。我想知道是否有人知道一个简短的方法来实现我的目标,而不采用原始的长路(if / switch-case语句)。

1 个答案:

答案 0 :(得分:0)

使用SimpleDateFormat

SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yy");
String s = sdf.format(gc.getTime());
System.out.println(s);

这是您正在寻找的javadoc中的一部分:

Letter    Date or Time Component             Presentation      Examples
  M       Month in year (context sensitive)      Month      July; Jul; 07
  

:如果模式字母数为3或更多,则将月份解释为文本;否则,它被解释为数字。

     
      
  • Letter M生成上下文相关的月份名称,例如嵌入的名称形式。如果已使用构造函数DateFormatSymbols或方法SimpleDateFormat(String, DateFormatSymbols)显式设置了setDateFormatSymbols(DateFormatSymbols),则会使用DateFormatSymbols给出的月份名称。
  •   
  • Letter L生成月份名称的独立形式。
  •