1. 程式人生 > >Delphi獲得與設定系統時間格式《轉》

Delphi獲得與設定系統時間格式《轉》

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    btn1: TButton;
    btn2: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    procedure btn1Click(Sender: TObject);
    procedure btn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  GPrevShortDate,GPrevLongDate,GPrevTimeFormat:string;

implementation


{$R *.dfm}

procedure GetDateTimeFormat();
const i = 100;
var
  buf:pchar;
begin
  getmem(buf,100);
  //i:=100; //i必須在呼叫前賦值為buf緩衝區的長度。如果設為0或負值,將取不到設定的值
  GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SSHORTDATE,buf,i); //取當前使用者設定,短日期格式。
  GPrevShortDate:=string(buf);
  GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SLONGDATE,buf,i); //取長日期格式
  GPrevLongDate:=string(buf);
  GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_STIMEFORMAT,buf,i); //取時間格式
  GPrevTimeFormat:=string(buf);
  FreeMem(buf);
end;

procedure SetDateTimeFormat();
var
  p:DWORD;
begin
  SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SSHORTDATE,pchar('yyyy/MM/dd')); //設定短日期格式
  SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SLONGDATE,pchar('yyyy''年''M''月''d''日''')); //設定長日期格式為 yyyy'年'M'月'd'日',“年月日”字元必須用單引號括起來。Delphi字串裡必須用兩個單引號。
  SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_STIMEFORMAT,pchar('HH:mm:ss')); //設定時間格式,24小時制
  SendMessageTimeOut(HWND_BROADCAST,WM_SETTINGCHANGE,0,0,SMTO_ABORTIFHUNG,10,p);//設定完成後必須呼叫,通知其他程式格式已經更改,否則即使是程式自身也不能使用新設定的格式
end;

procedure TForm1.btn1Click(Sender: TObject);
begin
  SetDateTimeFormat;
  ShowMessage('修改成功!');
end;

procedure TForm1.btn2Click(Sender: TObject);
begin
  GetDateTimeFormat();
  label1.Caption := GPrevShortDate;
  Label2.Caption := GPrevLongDate;
  Label3.Caption := GPrevTimeFormat;
  ShowMessage('已得到原格式!');
end;

end.

在程式初始化時呼叫GetDateTimeFormat,將取出的設定儲存起來,然後用SetDateTimeFormat設定需要的格式。在程式退出時再次呼叫SetDateTimeFormat將儲存的值寫回去。

相關推薦

Delphi獲得設定系統時間格式

unit Unit1; interface uses   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,   Vcl.Contr

獲得設定系統預設裝置主音量音量大小以及靜音控制函式

CoreApi::CoreApi(void) {  CoInitializeEx(NULL, COINIT_MULTITHREADED);  } CoreApi::~CoreApi(void) {   } bool CoreApi::InitDeviceIds(void)

asp.net站點時間格式系統時間格式不一致。手動修改

images 開始 iis 時間格式 重啟 .com short 技術分享 control asp.net站點時間格式與系統時間格式不匹配時,當修改系統時間格式,站點時間可能還是舊的格式。則可通過修改註冊表更新時間格式。1.開始-運行-輸入regedit,依次找到HKEY-

當前系統時間成YYYYMMDDHHMI格式

得到當前系統時間並轉成YYYYMMDDHHMI格式的簡單方法   引自:https://blog.csdn.net/qq_16728697/article/details/80243187 public static String getDateFormat(){  

date---顯示或設定系統時間日期

date命令可以用來顯示或設定系統的日期與時間,格式設定為一個加號後接數個標記,其中可用的標記列表如下: 時間方面: %H : 小時(00..23) %M : 分鐘(00..59) %p : 顯示本地 AM 或 PM %s : 從 1970 年 1 月 1 日 00:00:00 UTC

linux 設定系統時間同步

分散式叢集中往往要求時間一致性,需要設定不同的伺服器為相同的時間 1. 手動設定伺服器時間  linux系統時鐘有兩個,一個是硬體時鐘,即BIOS時間,就是我們進行CMOS設定時看到的時間,另一個是系統時鐘,是linux系統Kernel時間。當Linux啟動時,系統Kernel會去

centos7設定系統時間網路時間同步

Linux的時間分為System Clock(系統時間)和Real Time Clock (硬體時間,簡稱RTC)。 系統時間:指當前Linux Kernel中的時間。 硬體時間:主機板上有電池供電的時間。 檢視系統時間的命令: #date 設定系統時間的命令: #d

tomcat伺服器時間win系統時間不一致,是tomcat設定的時區不一致導致的

今天在tomcat伺服器上排查一個bug時發現,伺服器上的時間和系統的時間不一致,導致通過日誌定位bug比較吃力,而導致時間不一致是tomcat設定的時區和系統不一致導致的。以下是我的處理:到tomcat目錄下的bin資料夾中,找到catalina.bat檔案,使用筆記本開啟

ubuntu設定系統時間網路時間同步

 網上同步時間     1.  安裝ntpdate工具     # sudo apt-get install ntpdate     2.  設定系統時間與網路時間同步     # ntpdate cn.pool.ntp.org     3.  將系統時間寫入硬體時

設定系統時間為-東八區

1.檢視系統伺服器時區:     a.  date -R     b. cat /etc/sysconfig/clock   //下面針對東八區設定 [[email protected]

解決linux centos windows系統 時間不同步問題

今天在CentOS7上執行Java程式,發現程式生成的時間與當前時間匹配不上,還以為是資料停止更新了。 首先,使用linux命令查看了一下當前時間: date -R # 檢視當前時間 然而,發現CentOS7 上的時間比標準時間正好慢了8小時,猜測是沒有正確使用修改時區的姿勢,導致程式時

解決C#時間格式問題,不在受系統時間格式影響

if (DateTimeFormatInfo.CurrentInfo != null)             {                

日誌管理、設定系統時間及chronyd服務

##系統的日誌管理 1.系統日誌在管理中的作用 系統日誌具有審計和檢測作用,通過對日誌中相關資訊的分析,可以檢查系統發生錯誤的相關 資訊,實時進行監控.有效利用日誌資訊並會分析與監控管理,對維護系統安全性有重要作用. 2.系統日誌分類 系統的日誌一般存放在/v

dosunix系統格式轉化

dos 使用 格式 創建 clas 一個 系統 結束 轉化 unix 只用\n作為行結束符,而在 dos中是以\r和\n作為行結束符, 如果一個文件是在unix系統下創建,然後想在dos下使用,就要用unix2dos,如 unix2dos file 如果一個文件

date 設定系統時間

好似很簡單的命令,G了一大圈才找到,記下幾種方式供大家借鑑,有好的其他命令歡迎跟貼:設定系統時間為2007年4月14日13點58分的命令date -s "20070414 13:58:00" date -s "2007-04-14 13:58:00" date -s "200

windows時間不準,利用PYthon設定系統時間

import os import time import ntplib c = ntplib.NTPClient() response = c.request('pool.ntp.org') ts = response.tx_time _date = time.strftim

ARM Ubuntu設定系統時間

查詢時區: date -R    結果時區是:+0000 我需要的是東八區,這兒顯示不是,所以需要設定一個時區 一、執行tzselect sudo tzselect 選擇5-->

安卓系統下 用C語言設定系統時間

#include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #

AIX作業系統 檢視修改系統時間 命令 詳解

#date       (檢視系統當前時間) ------------------------------------------ 公元2010年12月1日 14時10分50秒 ----------------------------------------- #smi

CentOS 6.5 設定系統時間 同步

1.  安裝ntpdate工具 # yum -y install ntp ntpdate 2.  設定系統時間與網路時間同步 # ntpdate cn.pool.ntp.org 3.  將系統時間寫入硬體時間 # hwclock --systohc