如何改變系統預設的日期格式? (修正)
08/01 所介紹的方法, 在設定日期之後, 必須等到下次開機才生效, 如果要即時生效, 必須呼叫 SetLocaleInfo API 函數, 如下:
1. API 的宣告:
Const LOCALE_SLONGDATE = &H20
Const LOCALE_SSHORTDATE = &H1F
Const LOCALE_STIME = &H1E
Private Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long
Private Declare Function SetLocaleInfo Lib "kernel32" Alias
"SetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As
String) As Long
註:如果以上的宣告放在「一般模組」底下, 應將 Private 保留字去掉, 並且在 Const 之前加上 Public 保留字。
2. 呼叫例:
Dim lcid As Long
lcid = GetSystemDefaultLCID
SetLocaleInfo lcid, LOCALE_SSHORTDATE, "yy/m/d" ' 短日期格式
SetLocaleInfo lcid, LOCALE_SLONGDATE, "MMMM dd
yyyy" ' 長日期格式
SetLocaleInfo lcid, LOCALE_STIME, "tt hh: mm: ss"
' 時間格式
以上的紅色部分請改成您要設定的格式。
08/01 公布的解決方案
如果使用「控制台」, 則改變系統預設的日期格式, 是啟動「控制台」的「國別」, 然後進行設定, 但如果不使用「控制台」, VB 程式如何改變系統預設的日期格式呢?
方法是改變登錄資料庫的以下內容:
HKEY_CURRENT_USER\Control Panel\International\sLongDate (長日期格式)
HKEY_CURRENT_USER\Control Panel\International\sShortDate (短日期格式)
HKEY_CURRENT_USER\Control Panel\International\sTimeFormat (時間格式)