呼啦一陣風(fēng)
2023-02-16 14:23:23
我像這樣從 Sqlite 獲取時間戳:"timestamp" + " TIMESTAMP DEFAULT CURRENT_TIMESTAMP );"這就是我獲取日期的方式:2019-06-23 04:25:28 我正在轉(zhuǎn)換以獲取日期,我得到的是 18070 而不是 int dayString timestamp = cursor.getString(cursor.getColumnIndex(VentasContract.TIME_STAMP)); Log.d("TIEMPO",timestamp); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = sdf.parse(timestamp); long millis = date.getTime(); long days = (millis / (60*60*24*1000)); Log.d("DIA",String.valueOf(days)); // The value of TIEMPO is 2019-06-23 04:25:28 // The value of DIA is 18070我希望今天是“23”
2 回答

慕虎7371278
TA貢獻1802條經(jīng)驗 獲得超4個贊
博士
myResultSet.getObject( … , OffsetDateTime.class ).getDayOfMonth()
23
細(xì)節(jié)
將遺留java.sql.Timestamp
對象轉(zhuǎn)換為現(xiàn)代java.time.Instant
對象,而不是隱式調(diào)用toString
.
Instant instant = myTimestamp.toInstant() ;
調(diào)整到您想要感知日期和時間的時區(qū)。也許這就是 UTC 本身。
OffsetDateTime odt = instant.atOffset( ZoneOffset.UTC ) ;
提取一個月中的第幾天。
int dom = odt.getDayOfMonth() ;
23
提示:可怕的java.sql.Timestamp
類在多年前已被 JDBC 4.2 取代。我們現(xiàn)在可以與數(shù)據(jù)庫交換現(xiàn)代java.time對象。
OffsetDateTime odt = myResultSet.getObject( … , OffsetDateTime.class ) ;

千萬里不及你
TA貢獻1784條經(jīng)驗 獲得超9個贊
Date#getTime()返回自 1970 年 1 月 1 日 00:00:00 GMT 以來的毫秒數(shù),由此 Date 對象表示。
這與本月的第幾天完全不同。
您應(yīng)該使用Calendar
class 或 switch 來使用 java 8 LocalDate
class of java.time
package。
添加回答
舉報
0/150
提交
取消