在android中获取错误的传入消息时间戳

在android中获取错误的传入消息时间戳,android,sms,timestamp,Android,Sms,Timestamp,我正在制作一个短信应用程序,其中我想根据短信的日期和原始地址删除短信。我已经知道如何根据这两个标准删除短信。。如果收件箱中已经存在短信,我将使用此代码获得正确的短信时间戳: String date = cursor.getString(cursor.getColumnIndex("date")); Long timestamp = Long.parseLong(date); String DateTime = MyDate.getDate(timestamp, "dd/MM/yyyy

我正在制作一个短信应用程序,其中我想根据短信的日期和原始地址删除短信。
我已经知道如何根据这两个标准删除短信。
。如果收件箱中已经存在短信,我将使用此代码获得正确的短信时间戳:

String date =  cursor.getString(cursor.getColumnIndex("date"));
Long timestamp = Long.parseLong(date);    
String DateTime = MyDate.getDate(timestamp, "dd/MM/yyyy hh:mm:ss a");
Log.d("Value: ","Value of date in ApplicationIntialiseCareTaker is "+DateTime);
但在新收到的短信中,我没有获得正确的短信时间戳,因此无法删除短信。这是我在收到短信时用于获取短信时间戳的代码:

body = sms.getMessageBody().toString();
address = sms.getOriginatingAddress();
long date = sms.getTimestampMillis();

在这段代码中,问题是我得到的时间戳应该是1秒左右的延迟。e、 g实际时间戳为12:10:32,但在接收到传入短信的情况下使用此代码,则为12:10:33。我不知道是什么问题。

听起来像是舍入错误。你关心毫秒吗?可能是,先生。这是实际的时间戳:1352096923764,这是我在收到短信的情况下得到的时间戳:1352096919000。我想评估其中的一些东西,看看只处理对你的用例有意义的数字是否有意义。如果我给你数字1999和1000,我如果要检查它们是否等于下一个最低的1000(即不取整),我将如何进行?可能类似于(floor(1999/1000)=floor(1000/1000))对吧?您只需找出SMS时间戳中最后一个有效数字的位置,找出如何执行舍入以生成h:m:s格式,然后找出如何对系统时间戳进行分舍入以匹配SMS时间戳。