研發階段的Android車機,還不支持從gps或儀表同步互聯網時間,
需要手動設定系統時間, 由于任何涉及在線業務,都有時間戳的概念,
如果和遠程云端服務器上的時間相差剩余,則服務器端不會回傳正常資料,
比如你的車載墨跡天氣App,如果你車機時間是:1970-01-01 08:00:00 ,
則肯定無法請求到最新的天氣資訊,因為你發起請求,服務器直接拒絕,
時間戳相差太大,除非你更新到當前北京時間,
準備階段
- adb shell date -s +時間,可以設定Android終端的系統時間為北京時間,
比如: adb shell date -s 20200307.165053 - 電腦端的時間一般就是北京時間,所以可以直接獲取電腦端的時間,然后設定為車機端的時間,
- 時間相關的模塊,可以用到time模塊或者datetime模塊,我一般建議用datetime模塊,
因為datetime模塊相對功能較為豐富,
Python批處理腳本模式
# coding=utf-8
import os
import datetime
now_time = datetime.datetime.now()
now_time = now_time.strftime("%Y%m%d.%H%M%S")
os.system("adb shell \"date -s %s\"" % now_time)
print("車機時間已經成功同步到了北京時間!")
os.sytem("pause")
更優雅地參考datetime模塊
以上datetime模塊的參考,
其實不符合日常規范,我們一般會寫成:
from datetime import datetime
now_time = datetime.now()
一般來說,在參考區域盡量參考到最底部,即最后一個模塊或者最后一個類,
在代碼呼叫區域,只用呼叫最后一個模塊或者最后一個類,
以上from datetime import datetime陳述句, 第一個datetime是模塊名,
第二個datetime是類名,我們呼叫了datatime的靜態方法.now()函式,
這塊如果理解不是很清楚,可以查看datetime.py的源代碼,
適當地減少變數
now_time = datetime.now()
now_time = now_time.strftime("%Y%m%d.%H%M%S")
其實可以寫成一句:
now_time = datetime.now().strftime("%Y%m%d.%H%M%S")
以適當地減少中間變數傳遞,讓代碼更加精煉,
Python面向程序函式形式
把代碼塊打包封裝一下, 并呼叫就可以了,
# coding=utf-8
import os
from datetime import datetime
def set_time():
now_time = datetime.now().strftime("%Y%m%d.%H%M%S")
os.system("adb shell \"date -s %s\"" % now_time)
print("車機時間已經成功同步到了北京時間!")
set_time()
os.system("pause")
Python面向物件類的形式
1.以"一切皆可歸類"的思想, 先抽象化出一個類來,
類名一般建議用"名詞", 所以我們命名為"TimeSetter",
代表時間設定器, 且一般要駝峰式(首字母大寫)來規范類的命名,
2. 養成良好的類的初始化(__init__)的習慣, 初始化程序中, 可以pass(什么都不做)
3. TimeSetter 類, 目前只需要一個設定時間的函式(動作功能)就足夠了,
函式的命名一般建議用"動詞", 所以我們命名為: "set_time" .
4類是一個抽象的事物, 必須實體化成具體的物件后,
才能進行呼叫, 所以我們實體化并命名成了t_obj, 表明是一個物件.
5.實體化成具體物件后, 物件就可以呼叫set_time這個函式了.
# coding=utf-8
import os
from datetime import datetime
def TimeSetter():
def __init__(self):
pass
def set_time(self):
now_time = datetime.now().strftime("%Y%m%d.%H%M%S")
os.system("adb shell \"date -s %s\"" % now_time)
print("車機時間已經成功同步到了北京時間!")
t_obj = TimeSetter()
t_obj.set_time()
os.system("pause")
代碼運行方式
確保Android車機設備通過USB線與電腦連接了,adb設備有效連接,
以上代碼的3種實作形式都可以直接運行,
比如保存為set_time.py并放在桌面,
每次需要同步終端時間的時候,雙擊運行set_time.py.py,
應該可以在Android車機終端螢屏上看到時間已經成功更新程北京時間了,
更多更好的原創文章,請訪問官方網站:www.zipython.com
自拍教程(自動化測驗Python教程,首部面向軟體測驗人員的Python教程)
原文鏈接:https://www.zipython.com/#/detail?id=2bae06141b004ab0b55ce9783777a30b
也可關注“武散人”微信訂閱號,隨時接受文章推送,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/180074.html
標籤:Python
上一篇:Python學習筆記(五)序列
