我有以下代码生成一个随机日期,但我不知道如何以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语句)。
答案 0 :(得分:0)
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生成月份名称的独立形式。