Как получить день, год, часы, мин. Индивидуально от формата даты "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-часовое время.