как конвертировать формат даты в андроид - PullRequest
12 голосов
/ 13 декабря 2011

Я получаю дату в строку в формате YYYY/MM/DD HH:MM:SS. Я хочу изменить ее на mm/dd/yyyy HH:mm:ss, а также покажет AM и PM, как я могу это сделать. Пожалуйста, помогите мне

Спасибо

Ответы [ 6 ]

34 голосов
/ 13 декабря 2011

Для получения AM PM и 12-часового формата даты используйте hh:mm:ss a в качестве форматера строк, ГДЕ hh для 12-часового формата и a для формата AM PM.

Примечание: ЧЧ для 24 часов, а чч для 12 часовых форматов даты

SimpleDateFormat formatter = new SimpleDateFormat("mm/dd/yyyy hh:mm:ss a");
            String newFormat = formatter.format(testDate);

Пример

String date = "2011/11/12 16:05:06";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/mm/dd HH:MM:SS");
        Date testDate = null;
        try {
            testDate = sdf.parse(date);
        }catch(Exception ex){
            ex.printStackTrace();
        }
        SimpleDateFormat formatter = new SimpleDateFormat("mm/dd/yyyy hh:mm:ss a");
        String newFormat = formatter.format(testDate);
        System.out.println(".....Date..."+newFormat);
10 голосов
/ 13 декабря 2011

Вы можете использовать SimpleDateFormat для тех же операций с любой датой.

SimpleDateFormat sourceFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
SimpleDateFormat DesiredFormat = new SimpleDateFormat("MM/dd/yyyy HH:MM:SS a");   
                                                             // 'a' for AM/PM

Date date = sourceFormat.parse("2012/12/31 03:20:20");
String formattedDate = DesiredFormat.format(date.getTime());  
// Now formattedDate have current date/time  
Toast.makeText(this, formattedDate, Toast.LENGTH_SHORT).show();  
1 голос
/ 13 декабря 2011

просто используйте класс Time. Попробуйте что-нибудь похожее на это.

Time time = new Time();
time.set(Long.valueOf(yourTimeString));

Если вам действительно нужен объект Date, просто попробуйте это.

Date date = new Date(Long.parse(yourTimeString));
1 голос
/ 13 декабря 2011

Используйте android.text.format.Time для преобразования. Вы можете передать время в виде текста, и он вернет вам время в нужном формате, используя timeInstance.format("");

вам нужно предоставить форматер.

См. Следующее: Время: http://developer.android.com/reference/android/text/format/Time.html Форматер: http://pubs.opengroup.org/onlinepubs/007908799/xsh/strftime.html

Вы можете использовать любую комбинацию строки форматирования для работы с ней:)

0 голосов
/ 16 сентября 2014
public static String getFormatedDate(String strDate, String sourceFormate,
        String destinyFormate) {
    SimpleDateFormat df;
    df = new SimpleDateFormat(sourceFormate);
    Date date = null;
    try {
        date = df.parse(strDate);

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

    df = new SimpleDateFormat(destinyFormate);
    return df.format(date);

}

и используйте как

getFormatedDate(strDate,
            "yyyy-MM-dd HH:mm:ss", "mm/dd/yyyy") 
0 голосов
/ 13 декабря 2011

вы можете использовать SimpleDateFormat или DateFormat для этого вот пример

SimpleDateFormat gsdf = new SimpleDateFormat("YYYY/MM/DD HH:mm:ss");
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss a");
try{
    Date d = gsdf.parse("2011/12/13 16:17:00");
    System.out.println("new date format " + sdf.format(d));
}catch(Exception){
     // handle exception if parse time or another by cause
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...