19

我正在做一个以"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());

谢谢,

4

4 回答 4

32

只需使用 parse 而不是 format :

String dateFromDB = "";
SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Date yourDate = parser.parse(dateFromDB);

然后您可以使用 java.util.Date & Calendar 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

我希望它符合你的需求

于 2012-05-11T13:13:18.023 回答
17

我建议您将数据库中的时间存储为“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
于 2012-05-11T13:47:00.177 回答
1

有这些方法可用于获取日期的各个部分

getDate()
getMinutes()
getHours()
getSeconds()
getMonth()
getTime()
getTimezoneOffset()
getYear()
于 2012-05-11T13:12:29.360 回答
1

尝试使用: int hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);

这里,

  • Calendar.HOUR_OF_DAY 为您提供 24 小时制时间。
  • Calendar.HOUR 为您提供 12 小时的时间。
于 2013-12-07T01:15:02.140 回答