我只想日现身像这样:
Saturday, May 26, 2012 at 10:42 PM
这里是我到目前为止的代码:
Calendar calendar = Calendar.getInstance();
String theDate = calendar.get(Calendar.MONTH) + " " + calendar.get(Calendar.DAY_OF_MONTH) + " " + calendar.get(Calendar.YEAR);
lastclick.setText(getString(R.string.lastclick) + " " + theDate);
这表明,月,日和年的数字,但一定是这样做的更好的办法? 是不是有这样做就像使用PHP的一些简单的方法date()
函数?
使用下面根据需要格式化日期。 请参阅本LINK
Calendar calendar = Calendar.getInstance();
lastclick.setText(getString(R.string.lastclick) + " " + String.format("%1$tA %1$tb %1$td %1$tY at %1$tI:%1$tM %1$Tp", calendar));
其中,%1 $ TA的staurday,%$ 1 TB五月,
等等...
Calendar calendar = Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat("EEEE, MMMM d, yyyy 'at' h:mm a");
System.out.println(format.format(calendar.getTime()));
运行上述代码输出当前时间(例如, Saturday, May 26, 2012 at 11:03 PM
)。
请参阅用于Android文档SimpleDateFormat
以获取更多信息。
的格式规范SimpleDateFormat
类似于PHP的的date
功能:
echo date("l, M j, Y \a\\t g:i A");
你是对的。 比起Java代码,PHP代码更加简洁。
这实际上是一个相当微妙的问题得到正确的,我从来没见过这里SO另一个答案,解决两个:
- 该
Calendar
(这意味着它可能会呈现出不同的日期比本地)的时区 - 该器件的
Locale
(这影响了“正确”的方式格式化日期)
以前这个问题的答案忽略语言环境,以及涉及转换到其他的答案Date
忽略的时区。 所以这里有一个更完整的,通用的解决方案:
Calendar cal = Calendar.getInstance(); // the value to be formatted
java.text.DateFormat formatter = java.text.DateFormat.getDateInstance(
java.text.DateFormat.LONG); // one of SHORT, MEDIUM, LONG, FULL, or DEFAULT
formatter.setTimeZone(cal.getTimeZone());
String formatted = formatter.format(cal.getTime());
请注意,您需要使用java.text.DateFormat
位置,而不是Android的自己(容易混淆的命名) android.text.format.DateFormat
。