如何从日期格式"yyyy-MM-dd'T'HH:mm:ss.SSSZ"单独获取日,年,小时,分钟?

wol*_*ine 17 datetime android

我正在做一个以"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());
Run Code Online (Sandbox Code Playgroud)

谢谢,

Est*_*gon 27

只需使用解析而不是格式:

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

然后你可以使用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
Run Code Online (Sandbox Code Playgroud)

我希望它符合您的需求


Joe*_*nek 15

我建议您将数据库中的时间存储为"timeInMillis".根据我的经验,它简化了代码,它允许您将时间值与彼此进行比较.

存储时间:

Calendar calendar = Calendar.getInstance(); // current time
long timeInMillis = calendar.getTimeInMillis();
mDb.saveTime (timeInMillis); // adjust this to work with your DB
Run Code Online (Sandbox Code Playgroud)

要检索时间:

long timeInMillis = mDb.getTime();
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis (timeInMillis);
int milliSeconds = calendar.get(MILLISECOND);
//etc
Run Code Online (Sandbox Code Playgroud)