• / 9
  • 下載費用:30 金幣  

時間獲取方法與裝置.pdf

摘要
申請專利號:

CN201510711748.7

申請日:

2015.10.27

公開號:

CN105242974A

公開日:

2016.01.13

當前法律狀態:

實審

有效性:

審中

法律詳情: 實質審查的生效IPC(主分類):G06F 9/52申請日:20151027|||公開
IPC分類號: G06F9/52; H04L29/08 主分類號: G06F9/52
申請人: 廣州視睿電子科技有限公司
發明人: 薄景仁; 張龍華; 林強生; 向建中; 林茂偉; 李彬
地址: 510663廣東省廣州市高新技術產業開發區科學城科珠路192號
優先權:
專利代理機構: 廣州三環專利代理有限公司44202 代理人: 麥小嬋; 郝傳鑫
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201510711748.7

授權公告號:

|||

法律狀態公告日:

2016.02.10|||2016.01.13

法律狀態類型:

實質審查的生效|||公開

摘要

本發明公開了一種時間獲取方法,包括:當開始執行一個計算機程序時,為所述計算機程序在內存中分配一個時間戳存儲區,并向時間同步服務器發送時間戳獲取指令;獲取時間同步服務器返回的Unix時間戳,并將Unix時間戳存儲在所述時間戳存儲區中;定時增加存儲在所述時間戳存儲區中的Unix時間戳的數值;當執行所述計算機程序的過程中需要獲取當前時間時,將所述時間戳存儲區當前存儲的Unix時間戳轉換為時間數據,并將所述時間數據作為所述當前時間。本實施例能夠為計算機程序提供精確無誤的時間,不會影響到其他程序的運行,并且需要的權限低。同時本發明實施例還提供了一種時間獲取裝置,用于執行上述時間獲取方法的步驟。

權利要求書

權利要求書
1.  一種時間獲取方法,其特征在于,包括:
當開始執行一個計算機程序時,為所述計算機程序在內存中分配一個時間戳存儲區,并向時間同步服務器發送時間戳獲取指令;
獲取所述時間同步服務器返回的Unix時間戳,并將所述Unix時間戳存儲在所述時間戳存儲區中;
定時增加存儲在所述時間戳存儲區中的Unix時間戳的數值;
當執行所述計算機程序的過程中需要獲取當前時間時,將所述時間戳存儲區當前存儲的Unix時間戳轉換為時間數據,并將所述時間數據作為所述當前時間。

2.  如權利要求1所述的時間獲取方法,其特征在于,所述定時增加存儲在所述時間戳存儲區中的Unix時間戳的數值,具體是:
每隔1秒的時間對存儲在所述時間戳存儲區中的Unix時間戳的數值加1。

3.  如權利要求1所述的時間獲取方法,其特征在于,
所述獲取所述時間同步服務器返回的Unix時間戳,并將所述Unix時間戳存儲在所述時間戳存儲區中具體是:
獲取所述時間同步服務器返回的Unix時間戳,將所述Unix時間戳轉換為毫秒的格式,并將轉換格式后的Unix時間戳存儲在所述時間戳存儲區中;
則所述定時增加存儲在所述時間戳存儲區中的Unix時間戳的數值,具體是:
每隔1毫秒的時間對存儲在所述時間戳存儲區中的Unix時間戳的數值加1。

4.  如權利要求1~3任一所項所述的時間獲取方法,其特征在于,所述當開始執行一個計算機程序時,為所述計算機程序在內存中分配一個時間戳存儲區,并向時間同步服務器發送時間戳獲取指令包括:
當開始執行一個計算機程序時,判斷所述計算機程序是否具有時間獲取權 限;
若所述計算機程序具有時間獲取權限,則為所述計算機程序在內存中分配一個時間戳存儲區,并向時間同步服務器發送時間戳獲取指令;
其中,所述時間獲取權限是預先為在運行過程中需要使用時間的計算機程序分配的權限。

5.  如權利要求4所述的時間獲取方法,其特征在于,所述計算機程序的時間獲取方法還包括:
當停止執行所述計算機程序時,從所述內存中釋放所述時間戳存儲區。

6.  一種時間獲取裝置,其特征在于,包括:
啟動執行模塊,用于當開始執行一個計算機程序時,為所述計算機程序在內存中分配一個時間戳存儲區,并向時間同步服務器發送時間戳獲取指令;
時間戳獲取模塊,用于獲取所述時間同步服務器返回的Unix時間戳,并將所述Unix時間戳存儲在所述時間戳存儲區中;
時間戳維護模塊,用于定時增加存儲在所述時間戳存儲區中的Unix時間戳的數值;
時間獲取模塊,用于當執行所述計算機程序的過程中需要獲取當前時間時,將所述時間戳存儲區當前存儲的Unix時間戳轉換為時間數據,并將所述時間數據作為所述當前時間。

7.  如權利要求6所述的時間獲取裝置,其特征在于,所述時間戳維護模塊具體用于每隔1秒的時間對存儲在所述時間戳存儲區中的Unix時間戳的數值加1。

8.  如權利要求6所述的時間獲取裝置,其特征在于,
所述時間戳獲取模塊具體用于獲取所述時間同步服務器返回的Unix時間 戳,將所述Unix時間戳轉換為毫秒的格式,并將轉換格式后的Unix時間戳存儲在所述時間戳存儲區中;
所述時間戳維護模塊具體用于每隔1毫秒的時間對存儲在所述時間戳存儲區中的Unix時間戳的數值加1。

9.  如權利要求6~8任一項所述的時間獲取裝置,其特征在于,所述啟動執行模塊包括:
權限驗證單元,用于當開始執行一個計算機程序時,判斷所述計算機程序是否具有時間獲取權限;
啟動執行單元,用于當所述計算機程序具有時間獲取權限時,為所述計算機程序在內存中分配一個時間戳存儲區,并向時間同步服務器發送時間戳獲取指令;
其中,所述時間獲取權限是預先為在運行過程中需要使用時間的計算機程序分配的權限。

10.  如權利要求9所述的時間獲取裝置,其特征在于,所述時間獲取裝置還包括停止執行模塊;
所述停止執行模塊用于當停止執行所述計算機程序時,從所述內存中釋放所述時間戳存儲區。

說明書

說明書時間獲取方法與裝置
技術領域
本發明涉及計算機技術領域,尤其涉及一種時間獲取方法與裝置。
背景技術
很多計算機程序在運行時都需要獲取當前的時間。為了保證獲取的時間精確無誤,計算機程序不是直接獲取計算機系統上的時間(因為計算機系統上的時間可能不準確),而是通過網絡向時間同步服務器獲取正確的時間。
具體如下時間獲取步驟如下:
1、客戶端(計算機)通過網絡向時間同步服務器請求同步;
2、時間同步服務器將當前的精確時間發給客戶端;
3、客戶端收到時間數據后更改計算機系統的時間;
4、之后如果客戶端需要獲取系統時間的時候直接獲取計算機系統的時間就是和網絡上的時間同步服務器一致的時間。
由于計算機程序每次請求同步都需要更改計算機系統的時間,再讀取計算機系統的時間作為當前的時間,則會存在以下的缺點:
1、同步時間之后因為直接修改了計算機系統時間會影響到其他直接使用計算機時間的程序,可能導致其他程序出錯;
2、修改計算機系統的時間通常需要管理員級別的高級權限。
發明內容
本發明實施例提出一種時間獲取方法與裝置,能夠為計算機程序提供精確無誤的時間,不會影響到其他程序的運行,并且需要的權限低。
本發明實施例提供一種時間獲取方法,包括:
當開始執行一個計算機程序時,為所述計算機程序在內存中分配一個時間戳存儲區,并向時間同步服務器發送時間戳獲取指令;
獲取所述時間同步服務器返回的Unix時間戳,并將所述Unix時間戳存儲在所述時間戳存儲區中;
定時增加存儲在所述時間戳存儲區中的Unix時間戳的數值;
當執行所述計算機程序的過程中需要獲取當前時間時,將所述時間戳存儲區當前存儲的Unix時間戳轉換為時間數據,并將所述時間數據作為所述當前時間。
在一個實施方式中,所述定時增加存儲在所述時間戳存儲區中的Unix時間戳的數值,具體是:
每隔1秒的時間對存儲在所述時間戳存儲區中的Unix時間戳的數值加1。
在另一個實施方式中,所述獲取所述時間同步服務器返回的Unix時間戳,并將所述Unix時間戳存儲在所述時間戳存儲區中具體是:
獲取所述時間同步服務器返回的Unix時間戳,將所述Unix時間戳轉換為毫秒的格式,并將轉換格式后的Unix時間戳存儲在所述時間戳存儲區中;
則所述定時增加存儲在所述時間戳存儲區中的Unix時間戳的數值,具體是:
每隔1毫秒的時間對存儲在所述時間戳存儲區中的Unix時間戳的數值加1。
進一步地,所述當開始執行一個計算機程序時,為所述計算機程序在內存中分配一個時間戳存儲區,并向時間同步服務器發送時間戳獲取指令包括:
當開始執行一個計算機程序時,判斷所述計算機程序是否具有時間獲取權限;
若所述計算機程序具有時間獲取權限,則為所述計算機程序在內存中分配一個時間戳存儲區,并向時間同步服務器發送時間戳獲取指令;
其中,所述時間獲取權限是預先為在運行過程中需要使用時間的計算機程序分配的權限。
進一步地,所述計算機程序的時間獲取方法還包括:
當停止執行所述計算機程序時,從所述內存中釋放所述時間戳存儲區。
相應地,本發明實施例還提供一種時間獲取裝置,包括:
啟動執行模塊,用于當開始執行一個計算機程序時,為所述計算機程序在 內存中分配一個時間戳存儲區,并向時間同步服務器發送時間戳獲取指令;
時間戳獲取模塊,用于獲取所述時間同步服務器返回的Unix時間戳,并將所述Unix時間戳存儲在所述時間戳存儲區中;
時間戳維護模塊,用于定時增加存儲在所述時間戳存儲區中的Unix時間戳的數值;
時間獲取模塊,用于當執行所述計算機程序的過程中需要獲取當前時間時,將所述時間戳存儲區當前存儲的Unix時間戳轉換為時間數據,并將所述時間數據作為所述當前時間。
在一個實施方式中,所述時間戳維護模塊具體用于每隔1秒的時間對存儲在所述時間戳存儲區中的Unix時間戳的數值加1。
在另一個實施方式中,所述時間戳獲取模塊具體用于獲取所述時間同步服務器返回的Unix時間戳,將所述Unix時間戳轉換為毫秒的格式,并將轉換格式后的Unix時間戳存儲在所述時間戳存儲區中;
所述時間戳維護模塊具體用于每隔1毫秒的時間對存儲在所述時間戳存儲區中的Unix時間戳的數值加1。
進一步地,所述啟動執行模塊包括:
權限驗證單元,用于當開始執行一個計算機程序時,判斷所述計算機程序是否具有時間獲取權限;
啟動執行單元,用于當所述計算機程序具有時間獲取權限時,為所述計算機程序在內存中分配一個時間戳存儲區,并向時間同步服務器發送時間戳獲取指令;
其中,所述時間獲取權限是預先為在運行過程中需要使用時間的計算機程序分配的權限。
進一步地,所述時間獲取裝置還包括停止執行模塊;
所述停止執行模塊用于當停止執行所述計算機程序時,從所述內存中釋放所述時間戳存儲區。
實施本發明實施例,具有如下有益效果:本發明實施例提出一種時間獲取方法,通過為計算機程序在內存中分配一個時間戳存儲區,將從時間同步服務器得到的Unix時間戳存儲在所述時間戳存儲區中并定時對其維護;在所述計算機程序需要獲取當前時間時,則將所述時間戳存儲區當前存儲的Unix時間戳轉換為時間數據,并將所述時間數據作為所述當前時間。即計算機程序的時間與計算機系統的時間是獨立的,互不影響,整個過程不會更改計算機系統的時間。因此本方案不會受到其他程序或者人為更改計算機系統的時間的影響,也不會影響到其他需要使用計算機系統的時間的程序,并且無需高級別的權限。同時本發明實施例還提供了一種時間獲取裝置,用于執行上述時間獲取方法的步驟,達到相應的技術效果。
附圖說明
圖1是本發明實施例提供的時間獲取方法的流程示意圖;
圖2是本發明實施例提供的時間獲取裝置的結構框圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
參見圖1,是本發明提供的時間獲取方法的第一實施例的流程示意圖,該方法包括以下步驟:
S101,當開始啟動一個計算機程序時,為所述計算機程序在內存中分配一個時間戳存儲區,并向時間同步服務器發送時間戳獲取指令;
S102,獲取所述時間同步服務器返回的Unix時間戳,并將所述Unix時間戳存儲在所述時間戳存儲區中;
S103,定時增加存儲在所述時間戳存儲區中的Unix時間戳的數值;
S104,當執行所述計算機程序的過程中需要獲取當前時間時,將所述時間戳存儲區當前存儲的Unix時間戳轉換為時間數據,并將所述時間數據作為所述當前時間。
Unix時間戳是從1970年1月1日(UTC/GMT的午夜)開始所經過的秒數,不考慮閏秒。Unix時間戳的0按照ISO8601規范為:1970-01-01T00:00:00Z。一個小時表示為UNIX時間戳格式為:3600秒;一天表示為UNIX時間戳為86400秒。
在一個實施方式中,步驟S103中所述定時增加存儲在所述時間戳存儲區中的Unix時間戳的數值,具體是:
每隔1秒的時間對存儲在所述時間戳存儲區中的Unix時間戳的數值加1。
因此,存儲在所述時間戳存儲區中的Unix時間戳對應的時間精度為1秒。
在另一個實施例中,步驟S102中所述獲取所述時間同步服務器返回的Unix時間戳,并將所述Unix時間戳存儲在所述時間戳存儲區中具體是:
獲取所述時間同步服務器返回的Unix時間戳,將所述Unix時間戳轉換為毫秒的格式,并將轉換格式后的Unix時間戳存儲在所述時間戳存儲區中;
則步驟S103中所述定時增加存儲在所述時間戳存儲區中的Unix時間戳的數值,具體是:
每隔1毫秒的時間對存儲在所述時間戳存儲區中的Unix時間戳的數值加1。
因此,存儲在所述時間戳存儲區中的Unix時間戳對應的時間精度為1毫秒。
進一步地,步驟S101中所述當開始執行一個計算機程序時,為所述計算機程序在內存中分配一個時間戳存儲區,并向時間同步服務器發送時間戳獲取指令包括:
當開始執行一個計算機程序時,判斷所述計算機程序是否具有時間獲取權限;
若所述計算機程序具有時間獲取權限,則為所述計算機程序在內存中分配一個時間戳存儲區,并向時間同步服務器發送時間戳獲取指令;
其中,所述時間獲取權限是預先為在運行過程中需要使用時間的計算機程 序分配的權限。只有用于時間獲取權限的計算機程序才會分配一個時間戳存儲區以及向時間同步服務器發送時間戳獲取指令。
進一步地,所述計算機程序的時間獲取方法還包括:
當停止執行所述計算機程序時,從所述內存中釋放所述時間戳存儲區。即所述時間戳存儲區是當所述計算機程序正在運行時臨時分配的存儲區,當所述計算機程序關閉后則會釋放,減少內存占用空間。
本發明實施例提供的時間獲取方法的工作原理如下:通過為計算機程序在內存中分配一個時間戳存儲區,將從時間同步服務器得到的Unix時間戳存儲在所述時間戳存儲區中并定時對其維護;在所述計算機程序需要獲取當前時間時,則將所述時間戳存儲區當前存儲的Unix時間戳轉換為時間數據,并將所述時間數據作為所述當前時間,因此將計算機程序的時間和計算機系統的時間獨立開來,在時間同步過程中不會影響到計算機系統的時間。
以下以鬧鐘程序為例說明本實施例的工作過程:
鬧鐘程序在啟動后,為所述鬧鐘程序在內存中分配一個時間戳存儲區,并向時間同步服務器發送時間戳獲取指令,將時間同步服務器返回的Unix時間戳存儲在所述時間戳存儲區中并定時增加Unix時間戳的數值。鬧鐘程序每隔1分鐘獲取當前的時間,在所述鬧鐘程序需要獲取當前時間時,則將所述時間戳存儲區當前存儲的Unix時間戳轉換為時間數據,并將所述時間數據作為所述當前時間。鬧鐘程序將獲取到的當前時間與設定的打鈴時間比較,如果到達打鈴時間就開始打鈴。
相應地,本發明實施例還提供一種時間獲取裝置,用于執行上述的時間獲取方法。如圖2所示,其是本發明實施例提供的一種時間獲取裝置的結構框圖,包括:
啟動執行模塊101,用于當開始執行一個計算機程序時,為所述計算機程序在內存中分配一個時間戳存儲區,并向時間同步服務器發送時間戳獲取指令;
時間戳獲取模塊102,用于獲取所述時間同步服務器返回的Unix時間戳,并將所述Unix時間戳存儲在所述時間戳存儲區中;
時間戳維護模塊103,用于定時增加存儲在所述時間戳存儲區中的Unix時間戳的數值;
時間獲取模塊104,用于當執行所述計算機程序的過程中需要獲取當前時間時,將所述時間戳存儲區當前存儲的Unix時間戳轉換為時間數據,并將所述時間數據作為所述當前時間。
在一個實施方式中,所述時間戳維護模塊103具體用于每隔1秒的時間對存儲在所述時間戳存儲區中的Unix時間戳的數值加1。
在另一個實施方式中,所述時間戳獲取模塊102具體用于獲取所述時間同步服務器返回的Unix時間戳,將所述Unix時間戳轉換為毫秒的格式,并將轉換格式后的Unix時間戳存儲在所述時間戳存儲區中;
所述時間戳維護模塊103具體用于每隔1毫秒的時間對存儲在所述時間戳存儲區中的Unix時間戳的數值加1。
進一步地,所述啟動執行模塊101包括:
權限驗證單元,用于當開始執行一個計算機程序時,判斷所述計算機程序是否具有時間獲取權限;
啟動執行單元,用于當所述計算機程序具有時間獲取權限時,為所述計算機程序在內存中分配一個時間戳存儲區,并向時間同步服務器發送時間戳獲取指令;
其中,所述時間獲取權限是預先為在運行過程中需要使用時間的計算機程序分配的權限。
進一步地,所述時間獲取裝置還包括停止執行模塊;
所述停止執行模塊用于當停止執行所述計算機程序時,從所述內存中釋放所述時間戳存儲區。
本實施例提供的時間獲取裝置,用于執行上述的時間獲取方法的所有流程步驟,其工作原理和技術效果一一對應,因而不再贅述。
實施本發明實施例,具有如下有益效果:本發明實施例提出一種時間獲取方法,通過為計算機程序在內存中分配一個時間戳存儲區,將從時間同步服務 器得到的Unix時間戳存儲在所述時間戳存儲區中并定時對其維護;在所述計算機程序需要獲取當前時間時,則將所述時間戳存儲區當前存儲的Unix時間戳轉換為時間數據,并將所述時間數據作為所述當前時間。即計算機程序的時間與計算機系統的時間是獨立的,互不影響,整個過程不會更改計算機系統的時間。因此本方案不會受到其他程序或者人為更改計算機系統的時間的影響,也不會影響到其他需要使用計算機系統的時間的程序,并且無需高級別的權限。同時本發明實施例還提供了一種時間獲取裝置,用于執行上述時間獲取方法的步驟,達到相應的技術效果。
本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-OnlyMemory,ROM)或隨機存儲記憶體(RandomAccessMemory,RAM)等。
以上所述是本發明的優選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發明的保護范圍。

關 鍵 詞:
時間 獲取 方法 裝置
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:時間獲取方法與裝置.pdf
鏈接地址:http://www.rgyfuv.icu/p-6409566.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
山东11选5中奖结果走势图