2013-05-30 62 views
2

我正在创建一个Android应用程序。我有一个GregorianCalendar变量。如果语言环境为美国,我想从此变量中获取日期,如MM-dd-yyyy,如果语言环境为欧盟等,则需要dd-MM-yyyy。我不想硬编码每个区域设置的字符串,我想让它取决于手机的区域设置。来自GregorianCalendar的基于语言环境的日期字符串

问题是,经过几十个类似的问题,我仍然无法得到这个工作。我猜测它是两三行代码,可能使用SimpleDateFormat或GregorianCalendar.get()或getDisplayName()。

感谢您的帮助。

+0

只是要知道,哪个国家与欧盟地区的目标? –

+0

对不起,这是一个错字,它应该是RU。 –

回答

4

试试这个

GregorianCalendar gc = ... 
    String str = DateFormat.getDateInstance(DateFormat.SHORT).format(gc.getTime()); 

BTW默认日期格式(SHORT)对我们来说是dd/MM/yy如30/05/13

+0

完美,谢谢! –

2

你试试这个

DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, yourLocale); 
String formattedDate = df.format(yourcalender.getTime()); 

与yourcalender是GregorianCalendar的可变

+1

工程就好了。我选择了另一个作为答案,因为未指定区域设置意味着它会自动使用系统默认值,因为我需要。谢谢! –

0

更好的是为什么不使用用户自己的首选日期格式? Locale.getLocale()返回用户的首选语言环境,您可以使用它来格式化所有本地化的值(日期,时间,货币等),并知道您给用户一种他们选择的格式。

相关问题