亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從毫秒開始錯誤的一天

從毫秒開始錯誤的一天

呼啦一陣風 2023-02-16 14:23:23
我像這樣從 Sqlite 獲取時間戳:"timestamp" + " TIMESTAMP DEFAULT CURRENT_TIMESTAMP );"這就是我獲取日期的方式:2019-06-23 04:25:28 我正在轉換以獲取日期,我得到的是 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條經驗 獲得超4個贊

博士

myResultSet.getObject( … , OffsetDateTime.class ).getDayOfMonth()

23

細節

將遺留java.sql.Timestamp對象轉換為現代java.time.Instant對象,而不是隱式調用toString.

Instant instant = myTimestamp.toInstant() ;

調整到您想要感知日期和時間的時區。也許這就是 UTC 本身。

OffsetDateTime odt = instant.atOffset( ZoneOffset.UTC ) ;

提取一個月中的第幾天。

int dom = odt.getDayOfMonth() ;

23

提示:可怕的java.sql.Timestamp類在多年前已被 JDBC 4.2 取代。我們現在可以與數據庫交換現代java.time對象。

OffsetDateTime odt = myResultSet.getObject( … , OffsetDateTime.class ) ;


查看完整回答
反對 回復 2023-02-16
?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

Date#getTime()返回自 1970 年 1 月 1 日 00:00:00 GMT 以來的毫秒數,由此 Date 對象表示。

這與本月的第幾天完全不同。

您應該使用Calendarclass 或 switch 來使用 java 8 LocalDateclass of java.timepackage。


查看完整回答
反對 回復 2023-02-16
  • 2 回答
  • 0 關注
  • 125 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號