2

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

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

谢谢您的帮助。

4

3 回答 3

4

尝试这个

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

顺便说一句,美国的默认日期格式 (SHORT) 是dd/MM/yy例如 30/05/13

于 2013-05-30T13:49:29.897 回答
2

你试过这个吗

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

与 yourcalender 是 GregorianCalendar 变量

于 2013-05-30T13:50:26.480 回答
0

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

于 2013-05-30T14:08:29.200 回答