日历Java SimpleDataFormat。格式(日期)配置
我正在使用Zk Calendar开发一个类似Google的日历,我有一个关于java.text.SimpleDateFormat
的问题,这里有一些代码
(一)。如何在first letter uppercase is this possible
中获取day
和month
这是我目前使用的代码
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 Locale
和Spain Locale
的US
版本在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 楼答案
您是否尝试过在DateTime格式对象中设置区域设置:
并非所有语言都遵循美国标准(大写的日期和月份名称)。因此,javaDateTimeFormat的输出值是预期的
你可以在下面的问题中找到这个有趣的讨论
How to control the capitalization of month and day names returned by DateFormat?