Как отформатировать дату в Java ME? - PullRequest
1 голос
/ 09 сентября 2011

Итак, у меня есть объект Date, и я хочу создать метод, который будет печатать Date в следующем формате:

11 September 2011, 9:15pm

Как мне это сделать?На данный момент я просто делаю toString для даты, и она дает мне всю информацию о GMT и точность в секундах, которая мне не нужна.Нужно ли использовать DateFormatter или есть более простой способ сделать это?

Это было отредактировано, чтобы включить Java ME в заголовок и теги после некоторых из правильных ответовдля исходного вопроса были опубликованы.

1 Ответ

8 голосов
/ 09 сентября 2011

Вы можете использовать SimpleDateFormat класс для форматирования вашей даты.http://download.oracle.com/javase/1,5.0/docs/api/java/text/SimpleDateFormat.html

Я думаю, что шаблон будет выглядеть примерно так:

SimpleDateFormat format = new SimpleDateFormat("dd MMMM yyyy, h:ma");
format.format(yourDate);

EDIT для Java ME;Я читал, что в спецификациях Java ME нет класса SimpleDateFormat.Поэтому я бы попробовал Календарь;

Сначала поместите свою дату в Календарь, а затем получите все, что вам нужно.Лучше сделать этот метод

Calendar calendar = Calendar.getInstance();
Date myDate = new Date(); // as an example, date of "now"
calendar.setTime(myDate);

int day = calendar.get(Calendar.DAY_OF_MONTH);
int monthNumber = calendar.get(Calendar.MONTH);

String[] _months = new DateFormatSymbols().getMonths();
String[] months = new String[12];
for(int i =0; i < 12; i++){
    months[i] = _months[i];
}
//because there is something wrong, we have a 12. month in the name of "" (nothing)

//or if there is no DateFormatSymbols class in your plans
//you may write for yourself;
/*
String[] monthNames = {"January", "February",
            "March", "April", "May", "June", "July",
            "August", "September", "October", "November",
            "December"};
*/
String month = months[monthNumber]; //or String month = monthNames[monthNumber];

int year = calendar.get(Calendar.YEAR);

int hour = calendar.get(Calendar.HOUR);
int minute = calendar.get(Calendar.MINUTE);
String amPm = calendar.get(Calendar.AM_PM)==1 ? "am" : "pm";
System.out.println(day + " " + month + " " + 
    year + ", " + hour + ":" + minute + amPm);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...