我正在使用AT命令阅读短信,就像在this tutorial中一样。当我阅读这些消息时,我想知道" old"是那些短信。 SMSC收到SMS的信息包含在SMS中,原文如下:
+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是什么意思?它不能与UTC相差32小时。
此外,如果发送短信,例如从日本发送到法国,那么在列出短信时显示的小时数是多少?来自日本SMSC的小时?来自法国的SMSC?如何将它们转换为UTC以可靠地计算从发送SMS(到达SMSC)到我读取它的那一刻所经过的时间?
这里并没有真正寻找特定于实现的答案,但如果重要,我将在shell脚本中进行数学运算
答案 0 :(得分:2)
答案 1 :(得分:2)
这个答案证实了eBusians's answer,但展示了如何使用权威参考而不是依赖随机网页得出相同的结论(有些是好的,但很多都不是)。链接网页上的文字不正确,但它只是关于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>
定义为
3GPP TS 23.040 [3] TP-Discharge-Time-time-string格式: “yy / MM / dd,hh:mm:ss±zz”,其中字符表示年份(最后两个 数字),月,日,小时,分钟,秒和时区。例如。 6日 1994年5月22:10:00 GMT + 2小时等于“94/05 / 06,22:10:00 + 08”
此时我并不打算深入研究23.040规范中的2&lt; ==&gt;示例中的8个关系与eBusians的答案一致,我没有理由怀疑它的正确性。