Java 从日期获取格式为DD-MON-YY的字符串

Java 从日期获取格式为DD-MON-YY的字符串,java,date,formatting,gregorian-calendar,Java,Date,Formatting,Gregorian Calendar,我有以下生成随机日期的代码,但我不知道如何以DD-MON-YY的形式显示它(例如12-NOV-12),这恰好是日期的SQL标准格式(即,最后我计划将此数据与JDBC一起传递到oracle数据库) 不管怎么说,重点是我已经尝试了很多方法来格式化它,我得到的最接近它的是DD-MM-YY(例如12-12-12)。我想知道是否有人知道一种短/简单的方法来实现我的目标,而不必求助于原始的长方法(if/switch case语句)。使用: 这是您要查找的javadoc中的一部分: Letter Dat

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

不管怎么说,重点是我已经尝试了很多方法来格式化它,我得到的最接近它的是
DD-MM-YY
(例如
12-12-12
)。我想知道是否有人知道一种短/简单的方法来实现我的目标,而不必求助于原始的长方法(if/switch case语句)。

使用:

这是您要查找的javadoc中的一部分:

Letter    Date or Time Component             Presentation      Examples
  M       Month in year (context sensitive)      Month      July; Jul; 07
月份:如果模式字母的数量为3个或更多,则该月份将被解释为文本;否则,它将被解释为一个数字

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

谢谢,我没有意识到大写格式有不同的效果:DOh wait,它仍然显示月份的数字,而不是我正在寻找的三个字母的格式。除非这种格式可以用于SQL中的
DATE
类型,而无需使用
TO_DATE()
(我不知道),否则我要回到第1步:/@Yokhen您可以随时阅读链接中发布的javadoc(这不是为了装饰)。修复了POSI读取几种类似日期的数据类型的javadoc的问题,但是我没有看到有关格式化的信息。也许我只是不擅长阅读。很抱歉问了这么多明显的问题:(编辑:关于我正在寻找的特定格式的信息。不过我看到了一整套其他格式。@Yokhen不要抱歉。无论如何,这应该会返回预期的输出。
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yy");
String s = sdf.format(gc.getTime());
System.out.println(s);
Letter    Date or Time Component             Presentation      Examples
  M       Month in year (context sensitive)      Month      July; Jul; 07