【发布时间】:2018-07-02 06:49:11
【问题描述】:
经过搜索,我无法找到解决此问题的方法。
我有这个:
Long parseDt = Long.valueOf(arrayJson.getJSONObject(i-j).getInt("dt")); // dt is a timestamp
Locale locale = ConfigurationCompat.getLocales(Resources.getSystem().getConfiguration()).get(0);
String date = new SimpleDateFormat("EEE d MMM", locale).format(new java.util.Date(parseDt * 1000));
因此,该模式有效,但是当我更改手机语言时,它并没有交换它的显示方式,我想说如果手机语言是法语,它会显示这样的日期,这对大多数人来说都很好欧洲语言:
七月 2 日
如果我将语言切换为英语,它会显示如下日期:
7 月 2 日星期一
代替:
7 月 2 日星期一
你有什么线索可以解决这个关于我的模式的问题,知道我想要最多 3 个字符的日期名称吗?
现有的预定义格式(如 FULL)可以工作,但日期的名称完全显示,例如它是“星期一”,我只想要“星期一”,而不是“星期一”,所以,有什么想法吗?
【问题讨论】:
-
您为什么希望
EEE d MMM后面的日期? -
要以
mon july 2格式显示日期,您应该更改SimpleDateFormat的给定格式。从EEE d MMM到EEE MMMM d -
您确定您的用户更喜欢“星期一”吗?一方面是怀疑在定义预定义格式方面投入了大量工作,另一方面是尊重您最了解自己的用户(至少我希望您这样做)。
-
@SuganthanMadhavanPillai,理想情况下我不想交换模式。我想要它根据国家自动。我将很快回答我的问题以解释我的选择。
-
@OleV.V.,同意,也许用户更喜欢全天名称,但在这种情况下,我的问题是我没有足够的空间来显示全天名称。理想情况下,日期名称为 3 个字符,月份中的日期为 2 个字符,月份为 3 或 4 个字符,仅此而已,没有更多空间了。
标签: java android datetime simpledateformat