Как отформатировать дату в Android из строки - PullRequest
1 голос
/ 05 июля 2019

Печать журнала dateStr -> 2019-07-05 12:05:36 currentDate -> Fri Jul 05 00:00:00 GMT+02:00 2019

Мне нужно -> Fri 05 Jul 2019, а также переведено на македонский язык

String dateStr = obj.getString("sent_date");
            Log.d("date", dateStr);
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

            Date currentDate = null;
            try {
                currentDate = sdf.parse(dateStr);
                Log.d("date", currentDate.toString());

Ответы [ 4 ]

0 голосов
/ 05 июля 2019

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

private String returnData(String date) {
    SimpleDateFormat localDateFormat = new SimpleDateFormat("yyyy-MM-dd");
    localDateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
    try {
        localDateFormat.parse(date);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    String finalDate = localDateFormat.format(new Date());
    return finalDate;
 }
0 голосов
/ 05 июля 2019

Если вы ищете строку формата даты,

SimpleDateFormat resultFormat = new SimpleDateFormat("E dd MMM yyyy", new Locale("mk", "MK"));
resultFormat.format(currentDate)

Должен дать вам ожидаемый результат.

0 голосов
/ 05 июля 2019

Попробуйте этот код:

  @SuppressLint("SimpleDateFormat")
    public static String formatTime(String dateFormat) {
        String inputTimePattern = "EEE MMM dd HH:mm:ss zzzz yyyy";
        String outputTimePattern = "yyyy-MM-dd HH:mm:ss";
        SimpleDateFormat inputFormat = new SimpleDateFormat(inputTimePattern, Locale.ENGLISH);
        SimpleDateFormat outputFormat = new SimpleDateFormat(outputTimePattern, new Locale("mk" ,""));
        Date date;
        try {
            date = inputFormat.parse(dateFormat);
            return outputFormat.format(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return dateFormat;
    }

    Log.d(TAG, formatTime("Fri Jul 05 00:00:00 GMT+02:00 2019"));

    Output -> 2019-07-05 00:00:00
0 голосов
/ 05 июля 2019

Если вы хотите использовать SimpleDateFormat с македонским языком, вы можете сделать это следующим образом:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", new Locale("mk", "MK"));

или использовать вместо него DateFormat следующим образом:

Date date = new Date(location.getTime());
DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRANCE);
myDate = df.parse(dateStr);

для получения дополнительных параметров форматированияВы можете посмотреть на документы

...