用Delphi獲取當前系統時間 (轉)
在開發應用時往往需要獲取當前時間。儘管Y2K似乎已經平安過去,但在我們新開發的應用程式中還是要謹慎處理“時間”問題。
在《融會貫通--4.0實戰技巧》(以下簡稱“該書”)第89頁專門介紹了兩種獲取當前系統時間的方法,但這兩種方法都存在不足或錯誤,以下就此進行討論。
該書第一種方法是利用Time()獲得當前系統時間,返回結果是TDateTime結構型別的變數。例如:
procedure TForm1.Button2Click(Sender: T);
var
DateTime:TDateTime;
begin
DateTime:=Time();
Caption:=DateToStr(DateTime)++TimeToStr(DateTime);
end;
但不論何日期,其結果卻都是99-12-30 xx:xx:xx, 顯然日期出錯了。透過分析Delphi的幫助,Time()用於返回正確的“時間--時分秒”即TimeToStr(DateTime),而不應該用於返回“日期”。事實上,單獨用於返回日期的系統函式是Date。
那麼有什麼是既可返回正確的“時分秒”又可返回正確的“年月日”呢? 可以用Now函式,例如:
procedure TForm1.Button1Click(Sender: TObject);
var
mytime: TDateTime;
begin
mytime:=Now;
Caption:=DateToStr(mytime)++TimeToStr(mytime);
//或直接用 Caption := DateTimeToStr(Now);
end;
用Now返回的日期格式中年只有2位,即2000年顯示為00, 這似乎不太令人滿意. 此外Now和Time都只能獲得精確到秒的時間,為了得到更精確的毫秒級時間,可以使用函式GetSystemTime,它對應的TSystemTime型別的定義為:
TSystemTime = record
wYear: ;
wMonth: Word;
wDayOfWeek: Word;
wDay: Word;
wHour: Word;
wMinute: Word;
wSecond: Word;
wMilliseconds: Word;
end;
顯然,在程式邏輯中還能夠方便地使用其結構成?時---各類時間值,因此使用函式GetSystemTime具有很大優越性。但該書中該函式的用法是錯誤的,透過查閱 SDK幫助可知,該函式原型為:
VOID GetSystemTime(LPSYSTEMTIME lpst),引數指標lpst獲取系統時間,因此可如以下程式段實現:
procedure TForm1.Button3Click(Sender: TObject);
var
SysTime: TsystemTime;
begin
GetSystemTime(SysTime);
Caption:=IntToStr(SysTime.wYear)++IntToStr(SysTime.wMonth);
//if SysTime.wYear>2000 then
// ......在程式邏輯中利用獲取的各類時間值
end;
綜合以上討論,獲取當前系統時間利用函式GetSystemTime比較方便而且靈活。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-989868/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Qt學習(5)獲取當前系統時間-實時顯示當前時間QT
- 獲取當前時間
- mybatis獲取當前時間MyBatis
- python 如何獲取當前時間Python
- c++ 獲取當前時間周初凌晨時間戳(獲取當前時間週一凌晨時間戳)C++時間戳
- Android開發:獲取當前系統時間和日期的方法Android
- 獲取當前時間往前的日期
- 《Qt5+QDate和QTime獲取當前系統日期和時間》QT
- js獲取當前的具體時間JS
- 如何用Java獲取當前時間戳?Java時間戳
- WPF 前臺觸發器實時獲取當前時間觸發器
- 短視訊平臺原始碼,系統中獲取當前本地時間原始碼
- 如何用js獲取當前時間和ip地址以及當前城市JS
- 獲取系統時間
- js時間物件:獲取當前時間(格式化)- 程式碼篇JS物件
- PHP獲取當前季度的開始時間和結束時間PHP
- 短視訊平臺原始碼,vue獲取當前系統時間,日期及星期幾原始碼Vue
- JavaScript怎麼獲取當前時間的年月日?JavaScript
- C# 獲取系統當前IE版本號C#
- 使用go對NTP發起請求獲取當前時間Go
- 直播平臺軟體開發,登陸時獲取當前時間
- 獲取系統語言/當前 App支援語言APP
- mysql中取系統當前時間,當前日期方便查詢判定的程式碼MySql
- js獲取當天時間戳JS時間戳
- android短視訊開發,Java程式碼獲取當前時間的時間戳AndroidJava時間戳
- js外掛--獲取指定時間距離當前時間狀態:上週,當前周,前天,昨天,今天,明天,後天,當前周,下週。JS
- js-----時間格式化、獲取當前網頁路徑JS網頁
- pydantic 欄位的預設值設定獲取當前時間
- 輸入進入停車場時間,獲取系統當前時間,計算停車費用並按照指定的格式輸入清單
- 用js獲取當前月份的天數JS
- JavaScript 獲取當前月份JavaScript
- php 獲取當前域名和當前協議PHP協議
- 由system.currentTimeMillis() 獲得當前的時間
- 獲取當前時間戳和隨機數的獲取、Java Random、ThreadLocalRandom、UUID類中的方法應用(隨機數)時間戳隨機JavarandomthreadUI
- SAP CDS view如何取得當前系統日期和系統時間戳View時間戳
- Java程式設計:通過獲取當前時間,判斷今天星期幾Java程式設計
- Java Sound正確獲取一段音訊當前播放的時間Java音訊
- JavaScript 獲取指定時間前幾天日期JavaScript
- Linux 獲取系統開機/啟動時間Linux