我正在使用AT命令阅读短信,就像在本教程中一样。当我看短信的时候,我想知道那些短信有多老。SMSC收到短信的信息载于短信,全文如下:
+CMGL: 1,"REC UNREAD","+85291234567",,"07/02/18,00:05:10+32"
Reading text messages is easy.我应该如何解析这个"07/02/18,00:05:10+32"?我是说,+32是什么意思?它不能从世界协调时抵消32小时。
另外,如果一条短信从日本发送到法国,那么列出短信的时间是多少?从日本SMSC到几点?来自法国的SMSC?我如何将它们转换为UTC,以可靠地计算从SMS发送的那一刻(到达SMSC)到我读取短信的那一刻的时间?
这里并不是真正寻找具体实现的答案,但如果这很重要,我将在shell脚本中进行计算。
发布于 2016-02-16 10:03:58
它是以四分之一小时为单位的偏移量。
此链接将帮助您解决问题。
http://www.developershome.com/sms/cmgsCommand2.asp
致以敬意,
发布于 2016-02-16 22:47:18
这个答案证实了eBusians的回答的观点,但也说明了如何使用权威的引用来得出相同的结论,而不是依赖随机的网页(有些是好的,但很多不是)。链接的网页上的文本不是不正确的,但它只是关于AT+CMGS命令,而不是这里询问的AT+CMGL命令,所以您必须猜测/假设它们是相同的格式,这不是一个好方法。
描述AT+CMGL命令的文档是27.005标准(或调制解调器制造商自己的特定产品文档)。它将语法定义为
+CMGL: <index>,<stat>,<oa/da>,[<alpha>],[<scts>][,<tooa/toda>,<length>]
<CR><LF><data><scts>被定义为
3GPP TS 23.040 [3] TP-Service-Centre-Time-Stamp in time-string format (refer <dt>)<dt>被定义为
3 3GPP 23.040 3 TP-时间-时间字符串格式:"yy/MM/dd,hh:mm:ss±zz",其中字符指示年份(两个最后数字)、月、日、小时、分钟、秒和时区。1994年5月6日,22:10:00 GMT+2小时等于"94/05/06,22:10:00+08“
此时,我没有费心深入研究23.040规范,因为示例中的2 <==> 8关系与eBusians的答案是一致的,我没有理由怀疑它的正确性。
https://stackoverflow.com/questions/35428719
复制相似问题