Конвертировать дату Android Строки в объекты даты - PullRequest
2 голосов
/ 27 декабря 2011

В Android дата каждого события (например, дни рождения и годовщины) сохраняется в формате String, например, «2011-12-24».

Это по крайней мере так для моего телефона.Некоторые другие телефоны могут хранить эти даты в других форматах, если они имеют календарь, отличный от григорианского.

Даже для телефонов с установленным григорианским календарем существуют строки даты с часами и минутами и без.Я получаю такую ​​строку даты, когда я запрашиваю в таблице контактов событие:

cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Event.ST‌​ART_DATE))

Это приводит (например):

"2011-12-14" или "2011-12-24T00: 00: 00Z "

Вы видите, что существует множество различных возможных форматов.Чтобы вычислить даты, мне нужно преобразовать их из объектов String в Date, не так ли?

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

PS: я знаю, что есть функция разборадля объектов даты Java:

DateFormat myDateFormat = new SimpleDateFormat("dd/MM/yy");
Date tempDate = myDateFormat.parse("24/12/2011");

Но в Android я не знаю, с каким форматом мне придется столкнуться, не так ли?

Ответы [ 2 ]

3 голосов
/ 27 декабря 2011

Android работает с объектами даты.Каждый раз, когда вам нужно проанализировать дату из строки, это потому, что эта дата была сериализована, скорее всего, в файле.В этом случае вы будете знать формат, который был использован.Объект даты используется в настройках, объект даты используется практически везде, о чем я могу думать, это относится к общим службам, активностям и т. Д. Это означает, что почти никогда не требуется анализировать строку по дате, если, как я уже говорил, вы не работаете ссериализованный источник, чтение из веб-службы и т. д. Если вы можете сообщить нам свой сценарий, вы можете получить более конкретный ответ.

Вы можете получить текущий установленный формат даты, например:

DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(getApplicationContext());
0 голосов
/ 24 июня 2014
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

SimpleDateFormat myDateFormat = new SimpleDateFormat("dd/MM/yy");
        Date tempDate;
        try {
            tempDate = myDateFormat.parse("24/12/2011");
              long milliseconds=tempDate.getTime();
              Toast.makeText(getApplicationContext(), milliseconds+"", 1).show();
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...