解析短信 date/time
Parsing an SMS date/time
我正在使用 AT 命令阅读短信,就像 this tutorial 中一样。当我阅读消息时,我想知道这些短信是如何 "old" 的。短信中包含短信中心收到短信的信息,明文为:
+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 小时。
此外,如果从日本发送 SMS 到法国,列出 SMS 时显示的时间是几点?来自日本 SMSC 的时间?来自法国 SMSC?我如何将它们转换为 UTC 以可靠地计算从 SMS 发送(到达 SMSC)到我阅读它所经过的时间?
并不是真的要在这里寻找特定于实现的答案,但如果重要的话,我会在 shell 脚本
中进行计算
表示以刻钟为单位的偏移量。
本文link将帮助您解决问题。
http://www.developershome.com/sms/cmgsCommand2.asp
此致,
这个答案证实了 ,但展示了如何使用权威参考而不是依赖随机网页(有些很好,但很多不是)得出相同的结论。链接网页上的文字没有错,但它只是关于 AT+CMGS 命令而不是这里询问的 AT+CMGL 命令,所以你必须 guess/assume 它们是相同的格式这不是一个好方法。
描述 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 in time-string format:
"yy/MM/dd,hh:mm:ss±zz", where characters indicate year (two last
digits), month, day, hour, minutes, seconds and time zone. E.g. 6th of
May 1994, 22:10:00 GMT+2 hours equals to "94/05/06,22:10:00+08"
此时我没有费心去深入研究 23.040 规范,因为示例中的 2 <==> 8 关系与 eBusians 的回答一致,我没有理由怀疑它的正确性。
我正在使用 AT 命令阅读短信,就像 this tutorial 中一样。当我阅读消息时,我想知道这些短信是如何 "old" 的。短信中包含短信中心收到短信的信息,明文为:
+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 小时。
此外,如果从日本发送 SMS 到法国,列出 SMS 时显示的时间是几点?来自日本 SMSC 的时间?来自法国 SMSC?我如何将它们转换为 UTC 以可靠地计算从 SMS 发送(到达 SMSC)到我阅读它所经过的时间?
并不是真的要在这里寻找特定于实现的答案,但如果重要的话,我会在 shell 脚本
中进行计算表示以刻钟为单位的偏移量。
本文link将帮助您解决问题。
http://www.developershome.com/sms/cmgsCommand2.asp
此致,
这个答案证实了
描述 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 in time-string format: "yy/MM/dd,hh:mm:ss±zz", where characters indicate year (two last digits), month, day, hour, minutes, seconds and time zone. E.g. 6th of May 1994, 22:10:00 GMT+2 hours equals to "94/05/06,22:10:00+08"
此时我没有费心去深入研究 23.040 规范,因为示例中的 2 <==> 8 关系与 eBusians 的回答一致,我没有理由怀疑它的正确性。