Подтвердить что ты не робот

Изменить формат строки даты в android

Я получаю строку даты из синтаксического анализа SAX следующим образом: Wed, 18 Apr 2012 07:55:29 +0000

Теперь я хочу, чтобы эта строка: 18 апреля 2012 г. 13:25

Как я могу это сделать?

4b9b3361

Ответ 1

SimpleDateFormat format = new SimpleDateFormat("MMM dd,yyyy  hh:mm a");
String date = format.format(Date.parse("Your date string"));

ОБНОВЛЕНИЕ: -

Как и в случае, Date.parse("Your date string"); устарел.

String strCurrentDate = "Wed, 18 Apr 2012 07:55:29 +0000";
SimpleDateFormat format = new SimpleDateFormat("EEE, dd MMM yyyy hh:mm:ss Z");
Date newDate = format.parse(strCurrentDate);

format = new SimpleDateFormat("MMM dd,yyyy hh:mm a");
String date = format.format(newDate);

Ответ 2

Это будет сделано:

public static String formateDateFromstring(String inputFormat, String outputFormat, String inputDate){

    Date parsed = null;
    String outputDate = "";

    SimpleDateFormat df_input = new SimpleDateFormat(inputFormat, java.util.Locale.getDefault());
    SimpleDateFormat df_output = new SimpleDateFormat(outputFormat, java.util.Locale.getDefault());

    try {
        parsed = df_input.parse(inputDate);
        outputDate = df_output.format(parsed);

    } catch (ParseException e) { 
        LOGE(TAG, "ParseException - dateFormat");
    }

    return outputDate;

}

Пример:

String date_before = "1970-01-01";
String date_after = formateDateFromstring("yyyy-MM-dd", "dd, MMM yyyy", date_before);

Вывод:

date_after = "01, Jan 1970";

Ответ 3

Из официальной документации в новом API (18+) вы должны реализовать это:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", Locale.US);
String time=sdf.format(new Date());

Документация: http://developer.android.com/reference/java/text/SimpleDateFormat.html

Ответ 4

Самое простое решение - использовать DateFormat методы getter: Объект getDateTimeInstance DateFormat форматирует дату: 31 декабря 1969 г. 4:00:00, однако есть дополнительные лишние нули после 4:00

Date date = new Date();
String fDate = DateFormat.getDateTimeInstance().format(date);
System.out.println(fDate);

Ответ 5

Это работает для меня, используя SimpleDateFormat и Календарь

String originDate = "Wed, 18 Apr 2012 07:55:29 +0000";
SimpleDateFormat formatIn = new SimpleDateFormat("EEE, dd MMM yyyy hh:mm:ss Z");
SimpleDateFormat formatOut = new SimpleDateFormat("MMM dd,yyyy hh:mm a");
Calendar calendar = Calendar.getInstance();
calendar.setTime(formatIn.parse(originDate));

String newDate = formatOut.format(calendar.getTime());