如何获得日,年,时,分个别地从date格式“yyyy-MM-dd'T'HH:mm:ss.SSSZ”?

我正在做一个程序,存储当前的时间和date"yyyy-MM-dd'T'HH:mm:ss.SSSZ"这种格式。 我将它作为一个string存储在数据库中。 当我收集数据,我需要像日,年,分,秒等个人价值观。我该怎么做?

 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); String now = formatter.format(new Date()); 

谢谢,

  • android.database.sqlite.SQLiteDatabase.rawQuery()没有使用SQLite datetime()函数更新DATETIME列
  • 如何在Android中添加date
  • Android - 如何将通知设置为将来的特定date?
  • 毫秒到午夜
  • Android:date格式在一个string
  • 两分钟之间的差异
  • 时间戳到stringdate
  • 使用Android上的GSON将JSONdate格式parsing为string
  • 我build议你把时间存储在数据库中作为“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 

    只需使用parsing而不是格式:

     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 

    我希望它适合您的需求

    有这些方法可以获取date的个别部分

     getDate() getMinutes() getHours() getSeconds() getMonth() getTime() getTimezoneOffset() getYear() 

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

    这里,

    • Calendar.HOUR_OF_DAY为您提供24小时的时间。
    • Calendar.HOUR为您提供12小时的时间。