如何利用代碼獲取計算機系統時間?

2020-12-06 劉小愛
【Java】基礎22:和日期相關的類

計算機是有系統時間的,那這個時間是如何來的呢?或者說如何獲取和修改時間?

這個問題在Java裡面,就牽扯到了三個類:

一、Date類

Data:翻譯成中文是「日期」的意思。

在Java裡面Data類表示特定的瞬間,精確到毫秒。

①創建data對象,不初始化即表示為當前系統時間。

②直接列印就是當前的系統時間。

③getTime()得到的是當前時間的毫秒值(注意是毫秒值,1000毫秒等於1秒)。

現在時間換算成毫秒值就是:1588635898344,也就是說從計算機時間原點到現在一共過了1588635898344毫秒。

④setTime()設定距離時間原點為1000毫秒的時間。

⑤初始化為0毫秒即表示是時間原點。

在Java裡面,時間原點是1970年1月1日0點。

那為何控制臺顯示的是8點呢?

CST:China Standard Time,翻譯成中文就是:中國標準時間。中國是在東八區,時間原點是在零度經線(倫敦),也就是說倫敦0點時,中國8點。

Tue May 05 07:44:58 CST 2020這樣的時間格式,你能看懂,但是在中國本土,沒接觸過多少英文的人是看不懂的,或者說看著也非常不習慣。

2020年5月5日7時44分58秒,這才是中國人習慣的時間格式。那麼現在問題來了,如何將時間變成中國人都能看懂的時間格式?

二、DateFormat類

Date:日期;Format:格式化。很明顯,Dateformat類就是將日期格式化的類。

DateFormat是一個抽象類,沒法對象實例化,所以需要使用到它的子類SimpleDateFormat。不要看類名這麼長,分開記還是蠻簡單的:Simple、Date、Format,就是三個非常基礎的英文單詞。

1.format方法

①獲取當前的系統時間。

②創建日期格式化對象,設定想要的日期格式:

"yyyy年MM月dd日 HH時mm分ss秒"

y:小寫y,year的簡寫,表示年。M:大寫M,Month的簡寫,表示月。d:小寫d,day的簡寫,表示天。H:大寫H,hour的簡寫,表示小時。m:小寫m,minute的簡寫,表示分鐘。s:小寫s,second的簡寫,表示秒。③用SimpleDateFormat的format方法,按照自己設定的格式將系統時間格式化,得到的返回值是字符串。

④列印格式化後的時間也就是一個字符串:2020年05月05日 08時27分31秒。

2.parse方法

parse:解析。什麼意思呢?就是說這個方法能將一個字符串解析成對應的日期。

比如說:我們輸入了一字符串:「2020-05-05」,我們自然是能看懂2020年5月5日,但是計算機需要將其轉化成日期對象,parse方法的作用就是在此。

①日期文本:"2020-05-05"。

②創建日期格式化對象,設定日期格式:格式要和字符串一一對應

③使用parse方法,將字符串轉化成日期對象。

小結:

使用SimpleDateFormat類可以格式化日期。使用模式字母可以設定日期格式。format方法:將日期對象轉化成字符串。parse方法:將字符串轉化成日期對象。三、Calendar類

Calendar:日曆的意思。很顯然這也是一個日期相關的類。

Calendar和DateFormat一樣,也是一個抽象類,沒法創建對象實例化,我們需要使用到它的子類。

它有一個子類叫GregorianCalendar,這個英文字符不要一看覺得很複雜,用詞典查詢下會發現它的意思就是公曆。

在中國有農曆和公曆之分(有的地方又叫陰曆和陽曆),我們常說的十月一號國慶節,五月一號勞動節,一月一號元旦節,它們就是公曆。

1.get方法

①getInstance():根據系統信息(時區、語言)獲取相應的日曆。比如中國的系統:就是公曆;日本的系統:就是日本的日曆。

getInstance是靜態方法,可以直接用類名調用。

②get(Calendar.YEAR):獲取日期中的年份。

③get(Calendar.MONTH):獲取日期中的月份(注意:美國那邊的月份是從0到11月的,所以我們要加上1).

④get(Calendar.DAY_OF_MONTH):獲取日期中的日。

⑤字符串拼接列印。

其中還有一個欄位:DAY_OF_WEEK。也就是常說的星期幾,但是要注意,美國那邊一個星期的第一天是星期日。

也就是說星期日時:DAY_OF_WEEK=1;星期一時:DAY_OF_WEEK=2。

2.set方法和getTime方法

有get方法,自然也會有set方法,現在設定時間為2020年1月1日,代碼如下:

①設定年份為2020。

②設定月份是1,注意美國的一月份是0。

③設定日為1日。

④其中Calendar有一個方法getTime方法能將日曆對象,轉化成Date對象。

附:Date類的getTime方法得到的是當前時間的毫秒值,兩者不要弄混了。

3.add方法

add方法有兩個參數:前面的是欄位,後面的是數值。

也就是說,將後面的數值加到前面對應的欄位上面。

總結:

相關焦點

  • PLC代碼利用相關研究,PLC代碼缺陷分類
    該邏輯炸彈是用梯形圖語言編寫的惡意軟體,這種惡意軟體可被攻擊者注入到PLC現有控制邏輯中,通過改變控制動作或者等待特定的觸發信號來激活惡意行為,以實現傳感器數據篡改,系統敏感信息獲取以及PLC拒絕服務攻擊等。
  • 谷歌開源量子計算軟體原始碼,便利科學家利用量子計算機
    繼開源tensorflow、caffe等深度學習開發框架後,當地時間10月24日,谷歌在自己的官方博客上宣布,開源量子計算軟體OpenFermion,從而讓科學家更方便的使用量子計算機。谷歌稱,這次開放的是OpenFermion的原始碼,可供用戶免費使用,化學家和材料學家可以利用谷歌軟體改編算法和方程,使之能在量子計算機上運行。
  • 計算機中的時間與日期
    時間對於我們來說就是生命。而計算機中它是如何對待時間與度過漫長的時光的呢?時間持續不斷地,目前沒有人知道時間的盡頭是什麼?或時間有沒有盡頭?時間的概念又是什麼?人類度過的歲月叫時間,計算機把時間當成什麼?
  • 黑客是如何利用你的瀏覽器進行挖礦的?
    4、DeepMiner家族網頁挖礦木馬介紹:  DeepMiner是一個開源的JS挖礦項目,也是在有訪問量的網站中嵌入一段網頁挖礦代碼,利用訪客的計算機CPU資源來挖掘數字貨幣進行牟利。  4.1、DeepMiner網頁挖礦腳本代碼,如下所示:
  • 利用google map API+python獲取超高精度地形數據(附腳本代碼)
    上網一搜,果不其然,谷歌地圖提供了Google Maps Elevation API,可以非常方便地獲取指定範圍內的地形數據。下面簡單說一下怎麼做。不會寫代碼?沒關係,網上早就有大神幫我們寫好了!在我看來,這個代碼的機智之處在於他在一次請求裡塞了512個位置。這樣充分利用2500次請求的話,就有128萬個位置。這麼多位置可以構成一個相當可觀的面積。需要注意的是,谷歌地圖接受的是經緯度坐標,而我們做設計的有的時候更需精確的距離。
  • 【C++】C++獲取系統日期時間
    獲取日期C語言中讀取系統時間的函數為time(),其函數原型為:#include <time.h>time_t time( time_t * ) ;time_t就是long,函數返回從1970年1月1日(MFC是1899年12月31
  • 如何錄製宏及如何利用已經錄製好的宏
    今日的內容是第一章「初識VBA代碼及應用VBA代碼」的第四節「如何錄製宏及如何利用已經錄製好的宏」,「VBA之EXCEL應用」從簡單的錄製宏實現一直講到窗體的搭建,大家可以非常容易的掌握相關的知識,這套教程面向初學人員,共三冊,十七章,都是我們在利用EXCEL工作過程中需要掌握的知識點,希望大家能掌握利用。
  • 通俗講解計算機工作原理
    計算機種類繁多,從嵌入火星漫遊機器人的計算機到為操縱核潛艇導航系統的計算機,不一而足。馮• 諾伊曼在1945 年提出第一種計算模型,無論筆記本電腦還是電話,幾乎所有計算機都遵循與這種模型相同的工作原理。那麼你們了解計算機是如何工作的嗎?本文將討論這些內容:畢竟,在非程式設計師看來,編程要像魔法一樣神奇,我們程式設計師不會這麼看。計算機是一種根據指令操作數據的機器,主要由處理器與存儲器兩部分組成。
  • 混淆程序:代碼最安全的加密方式
    本文轉自【科技日報】;幾十年來,計算機科學家一直都想驗證是否存在絕對安全的方法來加密電腦程式,讓人們在使用計算機的同時卻無法破解其程序。 在2020年底,幾位學者成功找到了一種加密方式,讓計算機用戶無法通過獲取代碼破解程序。
  • 谷歌、微軟聯合出品《量子計算機編程》公開課,教你怎麼寫量子代碼
    新智元報導 編輯:大明【新智元導讀】微軟和谷歌聯合推出了一門在線互動課程《量子計算機編程》,課程面向初學者,介紹量子計算編程的基本概念,並教授如何利用微軟的Q#語言編寫簡單的量子算法和代碼。課程在網頁瀏覽器中進行,無需開發環境。
  • 對人腦而言,閱讀計算機代碼和閱讀語言有何不同?
    二者都需要學習新的符號和術語,然後以正確的方式將這些符號和術語組織起來,進而指導計算機去執行相應的任務。和語言一樣,傳達計算機代碼時也需要足夠清晰,以便其他程式設計師能夠閱讀和理解。儘管兩者間有這些相似之處,但麻省理工學院的神經科學家們發現,人類在閱讀計算機代碼時並不會激活大腦中與語言處理有關的區域。
  • 「Python自動化辦公」自動修改系統時間
    有時候我們會遇到一些軟體,需要通過修改系統時間來實現歷史記錄的修改和查詢。而每一次都要手動修改實在太麻煩,能不能用Python來實現呢?當然可以,今天就介紹一下如何利用Python自動修改系統時間。不同方式打開cmd,權限不同2、 修改權限首先是修改系統時間的權限: 運行->gpedit.msc->計算機配置->windows設置->安全設置->本地策略->用戶權限分配
  • 物理不好,如何給量子計算機編程?
    用一種簡單的思路來理解就是:在傳統計算機中,我們使用的是 0 和 1 兩個數字。而在量子計算機中,在原有 0 和 1 的基礎上,還增加了一個」可能為 0 或者 1「的狀態,也被稱作"疊加態"(superposition)。所有的量子算法都是利用了這種「可能」的狀態來表現量子計算機的強大能力。
  • 2009年計算機病毒威脅情況
    2009年計算機病毒威脅情況 時間:2010-07-12 來源:
  • 你對計算機病毒的概念了解過嗎?計算機病毒分為哪幾類?
    蠕蟲發展中早其出現是在 DOS 系統下的,是一類想像為蟲子的東西不同形式的發生在屏幕上並且更改其自身形態,蠕蟲(Worm)便因此而定義。在蠕蟲被發現的開始,它就成為 PC 端的一種毒瘤,發展現在伴隨網際網路急速前進,使得更加突顯出來蠕蟲在計算機系統中的重大危害。到現在為止,沒有一套比較成熟的原理系統給蠕蟲定義,可以歸納為,蠕蟲類惡意代碼是完全可獨自運行執行、自動複製的計算機惡意代碼。
  • 量子計算機最新動態:大腦式量子計算機
    哈特曼認為,他的大腦式量子計算機項目將有可能啟動人工智慧研究的新時代,可以管理非常複雜的問題,例如有可能幫助創造真正自主的自動駕駛汽車和系統,以便實時準確地管理整個城市的交通流量。現有的神經網絡是一種鬆散地模擬生物大腦基礎上建模的機器學習算法,它從示例中學習以傳統比特處理信息。構建這種軟體的許多嘗試都涉及編寫模仿人類大腦中神經元工作方式的代碼,並將許多這些人工神經元組合到一個網絡中。
  • Python 之父 Guido van Rossum 談如何以代碼的方式思考
    科技企業的代碼庫以數百萬行為計,當你在考慮用代碼構建一個系統時,你會反覆思考不同功能之間的複雜關係,以及代碼的編寫和結構會對系統造成什麼影響等,但你需要解決的問題和具有其固有的邏輯複雜性,不能簡單地就說來「簡化」這個系統。身為一名程式設計師重要的並不僅僅是電子,如果你沒有使用代碼來描述你的想法,你在行業內是不會生存太久的。
  • Java中如何顯示不同時區的時間(原理詳解)
    Java中如何顯示不同時區的時間(原理詳解) 電子發燒友網 發表於 2019-01-01 14:58:00 在Java中,如何獲取不同時區的當前時間?
  • 如何認定破壞計算機信息系統罪的經濟損失
    原創 韓德強 吳淑貞 人民法治近年來,破壞計算機信息系統犯罪高發,如何客觀準確認定破壞計算機信息系統罪經濟損失標準,理論與實踐均存在較大爭議。應從經濟損失的基本定義著手,界定其構成,合理認定犯罪危害後果,罰當其罪。
  • 量子計算機新型糾錯代碼!來自量子物理學家的最新突破
    物理學院的班傑明·布朗博士已經為量子計算機開發了一種糾錯碼,它將釋放更多的硬體來進行有用的計算。它還提供了一種方法,可以讓谷歌和IBM等公司設計出更好的量子微晶片。他通過將已知的三維操作代碼應用於二維框架來做到這一點。