有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

日历Java SimpleDataFormat。格式(日期)配置

我正在使用Zk Calendar开发一个类似Google的日历,我有一个关于java.text.SimpleDateFormat的问题,这里有一些代码

(一)。如何在first letter uppercase is this possible中获取daymonth

这是我目前使用的代码

private final SimpleDateFormat dformat = new SimpleDateFormat("EEEE dd-MMMMM-yyyy HH:mm:ss a");
private void printDateTester() 
{
    final Locale VENEZUELA_LOCALE = new Locale("es","VE");
    Locale locale = Locale.getDefault();
    System.out.println(locale.getDisplayCountry()+" "+locale.getCountry());//prints United States US
    System.out.println(VENEZUELA_LOCALE.getDisplayCountry()+" "+VENEZUELA_LOCALE.getCountry());//prints Venezuela VE
    final Calendar TODAY_US  = Calendar.getInstance(locale);
    final Calendar TODAY_VEN = Calendar.getInstance(VENEZUELA_LOCALE);
    System.out.println(dformat.format(TODAY_US.getTime())); //prints sábado 10-agosto-2013 11:07:55 AM  
    System.out.println(dformat.format(TODAY_VEN.getTime()));//prints sábado 10-agosto-2013 11:07:55 AM    
}  

它打印类似于sabado 10-agosto-2013 09:42:24 AM in english something like saturday 10-august-2013的内容,但我想打印类似于Saturday 10-August-2013 09:42:24 AM的内容。这可能吗

有什么好主意谢谢

更新

我已经创建了两个SimpleDataFormat 1使用Locale.US,另外两个使用Venezuela LocaleSpain LocaleUS版本在Uppercase中打印,但是两个Venezuela and Spain区域都在lowercase中打印,但是我需要在Spanish中显示数据,为什么

final Locale VENEZUELA_LOCALE = new Locale("es","VE");
Locale locale = Locale.getDefault();        
final SimpleDateFormat dformatI  = new SimpleDateFormat("EEEE dd-MMMMM-yyyy HH:mm:ss a",VENEZUELA_LOCALE);        
final SimpleDateFormat dformatII = new SimpleDateFormat("EEEE dd-MMMMM-yyyy HH:mm:ss a",Locale.US);        

Locale: Venezuela VE
print: domingo 11-agosto-2013 09:24:25 AM
Locale: United States US
print: Sunday 11-August-2013 09:24:25 AM

共 (1) 个答案

  1. # 1 楼答案

    您是否尝试过在DateTime格式对象中设置区域设置:

        private final SimpleDateFormat dformat = new SimpleDateFormat("EEEE dd-MMMMM-yyyy HH:mm:ss a",Locale.US);
    

    并非所有语言都遵循美国标准(大写的日期和月份名称)。因此,javaDateTimeFormat的输出值是预期的

    你可以在下面的问题中找到这个有趣的讨论

    How to control the capitalization of month and day names returned by DateFormat?