我使用DateFormat
和SimpleDateFormat
的组合来从Date
对象中获取以下字符串:
fre 20 22:48
此代码段产生上述结果:
DateFormat localizedTimeFormatter = DateFormat.getTimeInstance(DateFormat.SHORT, Locale.getDefault());
String str = new SimpleDateFormat("EE d", Locale.getDefault()).format(date) + " " + localizedTimeFormatter.format(date);
结果完全符合我的要求,但我认为可以做些改进。我想只使用SimpleDateFormat
来实现这一目标,并且每周和每月的日期都可以获得短名称。问题是根据区域设置,或者更准确地说,12或24小时格式,只需要几小时和几分钟的时间。我已查看SimpleDateFormat
Javadoc SimpleDateFormat上的文档
但正如我所看到的那样,通过将格式字符串设置为SimpleDateFormat
,无法获得12或24小时格式的时间(hhmm)?有没有办法通过仅使用SimpleDateFormat
作为oneliner来实现这一点,或者我必须按照我已经完成的方式来实现这一点,还是有完全不同的方法来解决这个小问题?
答案 0 :(得分:0)
怎么样
SimpleDateFormat sdf = new SimpleDateFormat("EE d HH:mm", Locale.getDefault());
或
SimpleDateFormat sdf = new SimpleDateFormat("EE d hh:mm", Locale.getDefault());
答案 1 :(得分:0)
您的方法正确。 但是,我不需要使用DateFormatter。
我在这条线上得到了你期望的结果。
String str = new SimpleDateFormat("EEE, d, k:m", Locale.getDefault()).format(Calendar.getInstance().getTime());
输出是:
Mon, 30, 19:5
我认为你在SimpleDateFormat的第一个参数中使用的模式是关键。 各个字母及其组合的含义已在您提供的链接中提及。
希望这有帮助。