Преобразовать значение времени в формат «чч: мм ам / мм» с помощью Android

Возможно, вы сможете сделать это с помощью xpath. что-то вроде //tr[contains(@class, 'row') and position() mod 2 = 0] может работать. Существуют другие вопросы SO, расширяющие подробности о том, как более точно сопоставлять классы.

29
задан Android learner 3 October 2018 в 15:12
поделиться

10 ответов

Я получил ответ, просто поступая так.

startTime = "2013-02-27 21:06:30";
StringTokenizer tk = new StringTokenizer(startTime);
String date = tk.nextToken();  
String time = tk.nextToken();

SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
SimpleDateFormat sdfs = new SimpleDateFormat("hh:mm a");
Date dt;
try {    
    dt = sdf.parse(time);
    System.out.println("Time Display: " + sdfs.format(dt)); // <-- I got result here
} catch (ParseException e) {
    e.printStackTrace();
}
24
ответ дан shadygoneinsane 3 October 2018 в 15:12
поделиться

Попробуйте это ..

Date dt = new Date(date1);
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm aa");
String time1 = sdf.format(dt);
50
ответ дан Murugan 3 October 2018 в 15:12
поделиться

Во-первых, вам не нужно использовать StringTokenizer, чтобы получить время строки. Просто передайте свой startTime так:

// Get date from string
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = dateFormatter.parse(startTime);

// Get time from date
SimpleDateFormat timeFormatter = new SimpleDateFormat("h:mm a");
String displayValue = timeFormatter.format(date);

// Done!
14
ответ дан maohieng 3 October 2018 в 15:12
поделиться

Попробуйте это

 String time = "22:35";

try {
     SimpleDateFormat sdf = new SimpleDateFormat("H:mm");
     Date dateObj = sdf.parse(time);
    System.out.println(dateObj);
    System.out.println(new SimpleDateFormat("K:mm").format(dateObj));
} catch (final ParseException e) {
    e.printStackTrace();
}

Найдите эту ссылку http://developer.android.com/reference/java/text/SimpleDateFormat.html

9
ответ дан dharam 3 October 2018 в 15:12
поделиться

Я рекомендую использовать DateFormat, например SimpleDateFormat

try {
    String timeLong = "2013-02-27 06:06:30";
    String timeShort = "16:06 AM";
    SimpleDateFormat formatLong = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US);
    SimpleDateFormat formatShort = new SimpleDateFormat("hh:mm aa", Locale.US);
    Log.v("out", formatShort.format(formatLong.parse(timeLong)));
    Log.v("out", formatShort.format(formatShort.parse(timeShort)));
} catch (ParseException e) {
    e.printStackTrace();
}

Я устал сегодня и чувствую, что что-то упустил в этом коде, поэтому я могу изменить его позже, но работает и не вызывает (прямо) устаревший класс Date.

5
ответ дан Sam 3 October 2018 в 15:12
поделиться

В выбранном ответе была проблема с указанием неправильного времени. Если ваше время 12:30:00 , оно показывает 12:30 AM вместо 12:30 PM . Приведенный ниже код поможет решить эту проблему.

SimpleDateFormat sdf = new SimpleDateFormat("KK:mm:ss");
SimpleDateFormat sdfs = new SimpleDateFormat("hh:mm a");

    Date dt1 = null;

    try {
        dt1 = sdf.parse("12:00:00");
        Log.i("Time in Am Pm  ", sdfs.format(dt1));

    } catch (ParseException e) {
        e.printStackTrace();
    }
1
ответ дан Nikhil 3 October 2018 в 15:12
поделиться

Просто используйте следующий шаблон, чтобы получить ожидаемый результат:

    try {
        String time = "06:06:30";
        SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
        Date dt = sdf.parse(time);

        SimpleDateFormat sdfs = new SimpleDateFormat("hh:mm a");
        String formatedTime = sdfs.format(dt);

        Log.v("parseTime", formatedTime);

    } catch (ParseException e) {
        e.printStackTrace();
    }

Удачного кодирования:)

0
ответ дан Monir Zzaman 3 October 2018 в 15:12
поделиться

1 Предполагается, что вам нужно показать текущее время в формате 09:30 PM . Это был бы довольно легкий подход. Даже если вы не нуждаетесь в этом в текущий момент времени, вы можете использовать приведенный ниже DateFormat для своих требований.

Calendar cal = Calendar.getInstance();
DateFormat outputFormat = new SimpleDateFormat("KK:mm a");
String formattedTime = outputFormat.format(cal.getTime());

2 Примечание: Следующий форматтер можно использовать для отображения того же времени в 24-часовом формате ( 21:30 ).

new SimpleDateFormat("HH:mm");

3 Однако, если вы хотите создать тот же формат, что и в моем первом пункте, лучше использовать следующий код, так как Java не поощряет использование StringTokenizer , Вы можете прочитать об этом здесь, http://docs.oracle.com/javase/6/docs/api/java/util/StringTokenizer.html

Надеюсь, это поможет вам, спасибо!

    String startTime = "2013-02-27 21:06:30";
    String[] parts = startTime.split(" ");

    DateFormat outputFormat = new SimpleDateFormat("KK:mm a");
    SimpleDateFormat parseFormat = new SimpleDateFormat("hh:mm:ss");


    try {
        Date dt = parseFormat.parse(parts[1]);
        System.out.println(outputFormat.format(dt));
    } catch(ParseException exc) {
        exc.printStackTrace();
    }
5
ответ дан Hamzeen Hameem 3 October 2018 в 15:12
поделиться

На Android у вас также есть DateFormat

1
ответ дан yoah 3 October 2018 в 15:12
поделиться
Date dt = new Date(date1);
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm aa");
String time1 = sdf.format(dt);

выходной 2.00 утра.

 Date dt = new Date(date1);
 SimpleDateFormat sdf = new SimpleDateFormat("hh:mm a",Locale.US);
 String time1 = sdf.format(dt);

выход 2,00 AM

5
ответ дан Aakash 3 October 2018 в 15:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: