Как получить день, год, часы, мин. Индивидуально от формата даты "yyyy-MM-dd'T'HH: mm: ss.SSSZ"?
Я делаю программу, которая хранит текущее время и дату в "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
в этом формате. и я храню его в базе данных как строку. когда я собираю данные, мне нужны отдельные значения, такие как день, год, минус, секунды и т.д. Как я могу это сделать?
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
String now = formatter.format(new Date());
Спасибо,
Ответы
Ответ 1
Я предлагаю вам хранить время в БД как "timeInMillis". По моему опыту он упрощает код и позволяет сравнивать значения времени друг с другом.
Чтобы сохранить время:
Calendar calendar = Calendar.getInstance(); // current time
long timeInMillis = calendar.getTimeInMillis();
mDb.saveTime (timeInMillis); // adjust this to work with your DB
Чтобы получить время:
long timeInMillis = mDb.getTime();
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis (timeInMillis);
int milliSeconds = calendar.get(MILLISECOND);
//etc
Ответ 2
Просто используйте синтаксис вместо формата:
String dateFromDB = "";
SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Date yourDate = parser.parse(dateFromDB);
И затем вы можете прочитать любое поле, которое вы хотите, используя java.util.Date и API календаря:
Calendar calendar = Calendar.getInstance();
calendar.setTime(yourDate);
calendar.get(Calendar.DAY_OF_MONTH); //Day of the month :)
calendar.get(Calendar.SECOND); //number of seconds
//and so on
Я надеюсь, что это соответствует вашим потребностям
Ответ 3
Доступны эти методы для получения отдельных частей даты
getDate()
getMinutes()
getHours()
getSeconds()
getMonth()
getTime()
getTimezoneOffset()
getYear()
Ответ 4
Попробуйте использовать: int hour = Calendar.getInstance(). get (Calendar.HOUR_OF_DAY);
Здесь
- Calendar.HOUR_OF_DAY дает вам 24-часовое время.
- Calendar.HOUR дает вам 12-часовое время.