我需要以这种格式显示日期和时间,日期:12月9日,时间:19:20
虽然我的下列代码在英文中运行良好,但不知道这是我的应用程序支持的其他语言的正确方法,如中文,泰文等。任何想法都会受到赞赏吗?感谢
这是我的代码:
private String getFormattedTime(Calendar calendar)
{
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
StringBuilder sBuilder = new StringBuilder(4);
sBuilder.append(hour);
sBuilder.append(":");
// We want to display the hour like this: 12:09,
// but by not using following code it becomes 12:9
if (minute < 10)
{
sBuilder.append("0");
}
sBuilder.append(minute);
return sBuilder.toString();
}
private String getDateSuffix( int day)
{
if (day < 1 || day > 31)
{
throw new IllegalArgumentException("Illegal day of month");
}
switch (day)
{
case 1:
case 21:
case 31:
return ("st");
case 2:
case 22:
return ("nd");
case 3:
case 23:
return ("rd");
default:
return ("th");
}
}
答案 0 :(得分:0)
我根据@MadProgrammer所说的做了一些研究,这是我的代码,对于那些有同样问题的人。 DateFormat and SimpleDateFormat Examples
private String getFormattedDate(Calendar calendar)
{
Date date = calendar.getTime(); // out: Dec 9, 2014
// String str = DateFormat.getDateInstance().format(date);
// Log.d(TAG, str);
String str = new SimpleDateFormat("MMM d").format(date);
// Log.d(TAG, str);
return str;
}
private String getFormattedTime(Calendar calendar)
{
Date date = calendar.getTime();
String str = DateFormat.getTimeInstance(DateFormat.SHORT).format(date);
// Log.d(TAG, str);
return str;
}
答案 1 :(得分:0)
我建议您使用Joda Time。
以下是他们Quick Start Guide的示例。
DateTime dt = new DateTime();
String monthName = dt.monthOfYear().getAsText();
String frenchShortName = dt.monthOfYear().getAsShortText(Locale.FRENCH);
虽然“Dec”可能意味着12月或12月,但Joda将使用正确的,取决于Locale
。
由于Locale.CHINESE
和Locale.THAI
可用,它会为您进行翻译。
如果您使用Java 8,Joda comes with the package。
如果你使用这个包,你将为自己节省大量的工作。