GregorianCalendar中基于区域设置的日期字符串

时间:2013-05-30 13:43:41

标签: java android date gregorian-calendar

我正在创建一个Android应用程序。我有一个GregorianCalendar变量。如果区域设置为US,则我希望将此变量的日期设置为MM-dd-yyyy,如果区域设置为EU,则希望获得dd-MM-yyyy等等。我不想硬编码每个语言环境字符串,我想让它取决于手机的语言环境。

问题在于,在查看了数十个类似的问题之后,我仍然无法让它发挥作用。我猜它是两行或三行代码,可能使用SimpleDateFormat或GregorianCalendar.get()或getDisplayName()。

感谢您的帮助。

3 个答案:

答案 0 :(得分:4)

试试这个

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

美国的BTW默认日期格式(简称)为dd/MM/yy,例如30/05/13

答案 1 :(得分:2)

你试过这个吗?

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

with yourcalender是GregorianCalendar变量

答案 2 :(得分:0)

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