精华内容
下载资源
问答
  • Delphi获得与设置系统时间格式 在Delphi中,特别是在写管理系统软件时,经常要用到 FormatDateTime 以将 TDateTime 格式的日期时间转换成字符串形式的值显示或保存起来,或者用 StrToDateTime将字符串形式的日期...

    Delphi获得与设置系统时间格式

    在Delphi中,特别是在写管理系统软件时,经常要用到 FormatDateTime 以将 TDateTime 格式的日期时间转换成字符串形式的值显示或保存起来,或者用 StrToDateTime将字符串形式的日期时间转换成 TDateTime 然后再做其他操作。
    在进行时间或日期的转换时,会使用系统当前设定的时间日期格式。而如果时间日期格式与字符串中的表示方式不相符,会使转换过程失败。例如当前短日期格式设定为'yyyy/MM/dd',而要转为 '2006-10-20'这样的字符串为日期,就会报错,说这不是一个有效的日期。
    所以在进行转换前,要确保系统的日期时间格式与程序中使用的相符。一种方法是在安装时由安装程序设置,或者明确告诉用户必须设置成要求格式。另一种就是程序在启动时,自动设定为需要的格式,退出程序时再恢复原来的设置。


    需要用到的有两个Windows API,一个是 GetLocaleInfo,一个是 SetLocaleInfo

    查API说明:
    int GetLocaleInfo(
    LCID Locale, // locale identifier ,设置信息的范围,是系统级,还是当前用户
    LCTYPE LCType, // type of information,设置信息的类型
    LPTSTR lpLCData, // address of buffer for information,设置成的值,必须用 pchar的格式传进去
    int cchData // size of buffer
    );

    BOOL SetLocaleInfo(
    LCID Locale, // locale identifier,同上
    LCTYPE LCType, // type of information to set
    LPCTSTR lpLCData // pointer to information to set
    );

    两个函数的参数很类似,其中 Locale可以取两个值:LOCALE_SYSTEM_DEFAULT,表示要操作的是系统默认的设置; LOCALE_USER_DEFAULT,表示要操作的是当前用户的设置。还可以取其他值,用于具体修改某种语言区域的设置。一般取 LOCALE_USER_DEFAULT。
    LCType,表示要操作信息的类型,也就是要操作的是哪一种设置。可用的值有很多,Delphi的联机帮助,或者查MSDN,都有一个大列表。但跟日期时间格式相关的一共有这几个:
    LOCALE_SSHORTDATE :短日期格式
    LOCALE_SLONGDATE :长日期格式
    LOCALE_STIMEFORMAT:时间格式
    另外 LOCALE_STIME 表示时间分隔符,LOCALE_SDATE 表示日期分隔符。可以单独使用,也可以在使用 LOCALE_SSHORTDATE 和 LOCALE_STIMEFORMAT 的同时一并修改,所以不需要单独操作。
    使用GetLocaleInfo或SetLocaleInfo时,每次只能操作一个类型。比如要同时设置短日期格式、长日期格式、时间格式,就必须分别用三个类型代号调用三次 SetLocaleInfo。
    还要一个要注意的问题是,设置日期时间格式后,应该向当前系统的激活窗口广播发送 WM_SETTINGCHANGE 消息,否则即使修改了,程序里还是不能用的。
    以下是获取和设置的程序片断。

    1.//获取时间日期格式

    procedure GetDateTimeFormat();
    var
    buf:pchar;
    i:integer;
    GPrevShortDate,GPrevLongDate,GPrevTimeFormat:string;
    begin
    getmem(buf,100);
    i:=100; //i必须在调用前赋值为buf缓冲区的长度。如果设为0或负值,将取不到设置的值
    GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SSHORTDATE,buf,i); //取当前用户设置,短日期格式。
    GPrevShortDate:=string(buf);
    i:=100;
    GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SLONGDATE,buf,i); //取长日期格式
    GPrevLongDate:=string(buf);
    i:=100;
    GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_STIMEFORMAT,buf,i); //取时间格式
    GPrevTimeFormat:=string(buf);
    FreeMem(buf);
    end;
    2.//设置时间格式

    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''日'''));
       SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_STIMEFORMAT,pchar('H:mm:ss')); //设置时间     
    SendMessageTimeOut(HWND_BROADCAST,WM_SETTINGCHANGE,0,0,SMTO_ABORTIFHUNG,10,p);
    //设置完成后必须调用,通知其他程序格式已经更改,否则即使是程序自身也不能使用新设置的格式
    end;

    在程序初始化时调用GetDateTimeFormat,将取出的设置保存起来,然后用SetDateTimeFormat设置需要的格式。在程序退出时再次调用SetDateTimeFormat将保存的值写回去。
    当然,如果程序已经在运行,别的程序也象我们这样把格式改成它需要的格式,那就没办法了,同时就只能运行一个,否则会互相干扰。如果一定要想办法的话,或许可以处理 WM_SETTINGCHANGE 消息,再把改掉的改回来?有点强盗。

     

    展开全文
  • Delphi获得与设置系统时间格式 在Delphi中,特别是在写管理系统软件时,经常要用到 FormatDateTime 以将 TDateTime 格式的日期时间转换成字符串形式的值显示或保存起来,或者用 StrToDateTime将字符串形式的日期...

    Delphi获得与设置系统时间格式

    在Delphi中,特别是在写管理系统软件时,经常要用到 FormatDateTime 以将 TDateTime 格式的日期时间转换成字符串形式的值显示或保存起来,或者用 StrToDateTime将字符串形式的日期时间转换成 TDateTime 然后再做其他操作。
    在进行时间或日期的转换时,会使用系统当前设定的时间日期格式。而如果时间日期格式与字符串中的表示方式不相符,会使转换过程失败。例如当前短日期格式设定为'yyyy/MM/dd',而要转为 '2006-10-20'这样的字符串为日期,就会报错,说这不是一个有效的日期。
    所以在进行转换前,要确保系统的日期时间格式与程序中使用的相符。一种方法是在安装时由安装程序设置,或者明确告诉用户必须设置成要求格式。另一种就是程序在启动时,自动设定为需要的格式,退出程序时再恢复原来的设置。


    需要用到的有两个Windows API,一个是 GetLocaleInfo,一个是 SetLocaleInfo

    查API说明:
    int GetLocaleInfo(
    LCID Locale, // locale identifier ,设置信息的范围,是系统级,还是当前用户
    LCTYPE LCType, // type of information,设置信息的类型
    LPTSTR lpLCData, // address of buffer for information,设置成的值,必须用 pchar的格式传进去
    int cchData // size of buffer
    );

    BOOL SetLocaleInfo(
    LCID Locale, // locale identifier,同上
    LCTYPE LCType, // type of information to set
    LPCTSTR lpLCData // pointer to information to set
    );

    两个函数的参数很类似,其中 Locale可以取两个值:LOCALE_SYSTEM_DEFAULT,表示要操作的是系统默认的设置; LOCALE_USER_DEFAULT,表示要操作的是当前用户的设置。还可以取其他值,用于具体修改某种语言区域的设置。一般取 LOCALE_USER_DEFAULT。
    LCType,表示要操作信息的类型,也就是要操作的是哪一种设置。可用的值有很多,Delphi的联机帮助,或者查MSDN,都有一个大列表。但跟日期时间格式相关的一共有这几个:
    LOCALE_SSHORTDATE :短日期格式
    LOCALE_SLONGDATE :长日期格式
    LOCALE_STIMEFORMAT:时间格式
    另外 LOCALE_STIME 表示时间分隔符,LOCALE_SDATE 表示日期分隔符。可以单独使用,也可以在使用 LOCALE_SSHORTDATE 和 LOCALE_STIMEFORMAT 的同时一并修改,所以不需要单独操作。
    使用GetLocaleInfo或SetLocaleInfo时,每次只能操作一个类型。比如要同时设置短日期格式、长日期格式、时间格式,就必须分别用三个类型代号调用三次 SetLocaleInfo。
    还要一个要注意的问题是,设置日期时间格式后,应该向当前系统的激活窗口广播发送 WM_SETTINGCHANGE 消息,否则即使修改了,程序里还是不能用的。
    以下是获取和设置的程序片断。

    1.//获取时间日期格式

    procedure GetDateTimeFormat();
    var
    buf:pchar;
    i:integer;
    GPrevShortDate,GPrevLongDate,GPrevTimeFormat:string;
    begin
    getmem(buf,100);
    i:=100; //i必须在调用前赋值为buf缓冲区的长度。如果设为0或负值,将取不到设置的值
    GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SSHORTDATE,buf,i); //取当前用户设置,短日期格式。
    GPrevShortDate:=string(buf);
    i:=100;
    GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SLONGDATE,buf,i); //取长日期格式
    GPrevLongDate:=string(buf);
    i:=100;
    GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_STIMEFORMAT,buf,i); //取时间格式
    GPrevTimeFormat:=string(buf);
    FreeMem(buf);
    end;
    2.//设置时间格式

    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''日'''));
       SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_STIMEFORMAT,pchar('H:mm:ss')); //设置时间     
    SendMessageTimeOut(HWND_BROADCAST,WM_SETTINGCHANGE,0,0,SMTO_ABORTIFHUNG,10,p);
    //设置完成后必须调用,通知其他程序格式已经更改,否则即使是程序自身也不能使用新设置的格式
    end;

    在程序初始化时调用GetDateTimeFormat,将取出的设置保存起来,然后用SetDateTimeFormat设置需要的格式。在程序退出时再次调用SetDateTimeFormat将保存的值写回去。
    当然,如果程序已经在运行,别的程序也象我们这样把格式改成它需要的格式,那就没办法了,同时就只能运行一个,否则会互相干扰。如果一定要想办法的话,或许可以处理 WM_SETTINGCHANGE 消息,再把改掉的改回来?有点强盗

     

    http://hi.baidu.com/northarcher/blog/item/8399e5f3b8543840342acc1a.html

    转载于:https://www.cnblogs.com/JackSun/archive/2011/01/04/1925252.html

    展开全文
  • word日期格式批量修改Inserting the date and time that automatically updates into a document can be useful. There are many formats for the date and time from which you can choose on the “Date and Time...
    word日期格式批量修改

    word日期格式批量修改

    00_lead_image_default_date_and_time_formats

    Inserting the date and time that automatically updates into a document can be useful. There are many formats for the date and time from which you can choose on the “Date and Time” dialog box, and you can control which formats for each are available.

    将自动更新的日期和时间插入文档中可能会很有用。 您可以在“日期和时间”对话框中选择多种日期和时间格式,并且可以控制每种格式可用的格式。

    When inserting the date and/or time using the “Date and Time” dialog box, you may have noticed the “Set As Default” button. This button is misleading as to what it actually does. When you select a format in the list on the “Date and Time” dialog box and click the “Set As Default” button, the selected format is used as the formatting switch when pressing “Shift + Alt + D” to insert the “DATE” field into a document.

    使用“日期和时间”对话框插入日期和/或时间时 ,您可能已经注意到“设置为默认值”按钮。 此按钮对其实际功能有误导作用。 当您在“日期和时间”对话框的列表中选择一种格式并单击“设为默认值”按钮时,按“ Shift + Alt + D”插入“ DATE”时,所选格式将用作格式设置开关”字段放入文档中。

    The “Set As Default” button has nothing to do with which formats for the date and time are available on the “Date and Time” dialog box. You are not setting the default selection for the dialog box when you click that button. When you start Word, the first option in the “Date and Time” dialog box is selected by default. Word remembers what you selected while the program is open, so the next time you open the “Date and Time” dialog box during the same Word session, the option you picked last is selected by default. When you close Word, the next time you open the program, the first option in the list is selected again.

    “设置为默认值”按钮与“日期和时间”对话框中可用的日期和时间格式无关。 当您单击该按钮时,您没有设置对话框的默认选择。 启动Word时,默认情况下会选择“日期和时间”对话框中的第一个选项。 Word会记住程序打开时选择的内容,因此,下次在同一Word会话中下次打开“日期和时间”对话框时,默认情况下会选择上次选择的选项。 当您关闭Word时,下次打开程序时,将再次选择列表中的第一个选项。

    The top item in the list on the “Date and Time” dialog box reflects the short date setting specified in Window’s regional settings in the “Control Panel.” Therefore, if you want to change the format of the date shown at the top of the list, you need to make a change in the regional settings in Windows. To make this change, press the “Windows key + X” to access the command menu and select “Control Panel.”

    “日期和时间”对话框上列表的顶部项目反映了在“控制面板”中Window的区域设置中指定的短日期设置。 因此,如果要更改列表顶部显示的日期格式,则需要在Windows中更改区域设置。 要进行此更改,请按“ Windows键+ X”以访问命令菜单,然后选择“控制面板”。

    01_opening_control_panel

    On the “Control Panel” window, click “Clock, Language, and Region,” if you are viewing by “Category.”

    如果要按“类别”查看,请在“控制面板”窗口上,单击“时钟,语言和区域”。

    02_clicking_clock_language_and_region

    On the “Clock, Language, and Region” screen, click “Change date, time, or number formats” under “Region.”

    在“时钟,语言和区域”屏幕上,单击“区域”下的“更改日期,时间或数字格式”。

    03_clicking_change_date

    If you are viewing the options on the “Control Panel” screen by “Large icons” or “Small icons…”

    如果您正在“控制面板”屏幕上通过“大图标”或“小图标...”查看选项

    04_selecting_small_icons

    …click the “Region” option in the list of “All Control Panel Items.”

    …单击“所有控制面板项目”列表中的“区域”选项。

    05_clicking_region_small_icon

    The “Region” dialog box displays. On the “Formats” tab, select an option from the “Short date” drop-down list. This format will be available at the top of the list on the “Date and Time” dialog box.

    显示“区域”对话框。 在“格式”选项卡上,从“短日期”下拉列表中选择一个选项。 此格式将在“日期和时间”对话框的列表顶部可用。

    06_selecting_short_date_format

    To change the format of the first occurrence of the long date format on the “Date and Time” dialog box, select an option from the “Long date” drop-down list.

    要在“日期和时间”对话框上更改长日期格式的首次出现的格式,请从“长日期”下拉列表中选择一个选项。

    07_selecting_long_date_format

    You can also change the format for the first occurrences of the short and long time options on the “Date and Time” dialog box by selecting an option from the “Short time” drop-down list and one from the “Long time” drop-down list. Click “OK” when you are finished making your selections to save your changes and close the “Region” dialog box.

    您还可以通过从“短时间”下拉列表中选择一个选项,并从“长时间”下拉列表中选择一个选项,来更改“日期和时间”对话框中第一次出现的短期和长期选项的格式。下列表。 完成选择后,单击“确定”以保存更改并关闭“区域”对话框。

    08_clicking_ok

    To close the “Control Panel” click the “X” button in the upper-right corner of the window.

    要关闭“控制面板”,请单击窗口右上角的“ X”按钮。

    09_closing_control_panel

    When you insert the date and time in Word, your newly selected date formats are now available at the top of the list on the “Date and Time” dialog box. If you changed the default long and short time formats, those are available where the long and short dates are first listed on the dialog box.

    现在,当您在Word中插入日期和时间时, “日期和时间”对话框中列表顶部的新选择的日期格式现在可用。 如果更改了默认的长时和短时格式,则在对话框中首先列出长日期和短日期的地方可用。

    NOTE: We used Word 2013 to illustrate this feature.

    注意:我们使用Word 2013来说明此功能。

    10_date_and_time_dialog

    Remember that the “Set As Default” button on the “Date and Time” dialog box sets the default format used when inserting the “DATE” field by pressing “Shift + Alt + D” in a document.

    请记住,“日期和时间”对话框上的“设置为默认值”按钮可通过在文档中按“ Shift + Alt + D”来设置插入“日期”字段时使用的默认格式。

    11_clicking_set_as_default

    If you click the “Set As Default” button on the “Date and Time” dialog box to change the format used when inserting the “DATE” field, you must click “Yes” on the confirmation dialog box to accept the change.

    如果单击“日期和时间”对话框上的“设置为默认值”按钮以更改在插入“日期”字段时使用的格式,则必须在确认对话框上单击“是”以接受更改。

    12_confirmation_dialog

    Now, when you press “Shift + Alt + D” to quickly insert a date field, the date format you set as the default in the “Date and Time” dialog box is inserted. Remember, the default set using the “Set as Default” button on the “Date and Time” dialog box is different from the default short and long date and time formats listed in the dialog box, set using the “Control Panel” in Windows.

    现在,当您按“ Shift + Alt + D”快速插入日期字段时,将插入在“日期和时间”对话框中设置为默认值的日期格式。 请记住,使用“日期和时间”对话框上的“设置为默认值”按钮的默认设置与使用Windows中的“控制面板”设置的对话框中列出的默认短日期和长日期和时间格式不同。

    NOTE: When you change the default long and short date and time formats in Windows, this may also change the way dates display in other programs besides Word.

    注意:在Windows中更改默认的长日期和短日期和时间格式时,这也可能会更改日期在Word之外的其他程序中的显示方式。

    翻译自: https://www.howtogeek.com/215124/how-to-set-the-default-short-and-long-date-and-time-formats-used-in-word/

    word日期格式批量修改

    展开全文
  • 设置系统日期时间格式

    千次阅读 2016-06-14 14:38:32
    比如日期格式为'yyyy/mm/dd'时, 稍微不注意,有些程序语句会报错. 以下资料网络收集: 1. SetLocaleInfo()中 LCTYPE values 的具体意义  出自: ...

    此函数用于设置系统的一些本地信息, 非常有用.

    比如日期格式为'yyyy/mm/dd'时, 稍微不注意,有些程序语句会报错.

    以下资料网络收集:

    1. SetLocaleInfo()中 LCTYPE values 的具体意义

       出自: http://hi.baidu.com/stormsxf/blog/item/7395b3000ed2e015728b65a5.html

    BOOL SetLocaleInfo(
    LCID Locale, 
    LCTYPE LCType, 
    LPWTSTR lpLCData 
    );

    其中LCTYPE LCType参数的具体意义如下

    Public:

    CONSTANT Long LOCALE_SCURRENCY = 20 //本地语言货币符号
    CONSTANT Long LOCALE_SINTLSYMBOL = 21 //国际货币符号
    CONSTANT Long LOCALE_SMONDECIMALSEP = 22 //小数分隔符
    CONSTANT Long LOCALE_SMONTHOUSANDSEP = 23 //千位分隔符
    CONSTANT Long LOCALE_SMONGROUPING = 24 //数据分组方式
    CONSTANT Long LOCALE_ICURRDIGITS = 25 //# 本地数字
    CONSTANT Long LOCALE_IINTLCURRDIGITS = 26 //# 国际数字
    CONSTANT Long LOCALE_ICURRENCY = 27 //货币正数表示模式
    CONSTANT Long LOCALE_INEGCURR = 28 //货币负数表示模式

    CONSTANT Long LOCALE_IPOSSIGNPOSN = 82 //货币正数符号的位置
    CONSTANT Long LOCALE_INEGSIGNPOSN = 83 //货币负数符号的位置
    CONSTANT Long LOCALE_IPOSSYMPRECEDES = 84 //正数中,货币符号位于值之前
    CONSTANT Long LOCALE_IPOSSEPBYSPACE = 85 //正数中,货币符号与值之间被空格分开
    CONSTANT Long LOCALE_INEGSYMPRECEDES = 86 //负数中,货币符号位于值之前
    CONSTANT Long LOCALE_INEGSEPBYSPACE = 87 //负数中,货币符号与值之间被空格分开
    CONSTANT Long LOCALE_FONTSIGNATURE = 88 //font signature

    CONSTANT Long LOCALE_SENGCURRNAME = 4103 //货币的英语名称
    CONSTANT Long LOCALE_SNATIVECURRNAME = 4104 //货币的当地语言名称

    CONSTANT Long LOCALE_ILANGUAGE = 1 //语言ID
    CONSTANT Long LOCALE_SLANGUAGE = 2 //语言区域名称
    CONSTANT Long LOCALE_SENGLANGUAGE = 4097 //语言英语名称
    CONSTANT Long LOCALE_SABBREVLANGNAME = 3 //语言名称缩写
    CONSTANT Long LOCALE_SNATIVELANGNAME = 4 //当地语言名称
    CONSTANT Long LOCALE_ICOUNTRY = 5 //国家代码
    CONSTANT Long LOCALE_SCOUNTRY = 6 //国家本地名称
    CONSTANT Long LOCALE_SENGCOUNTRY = 4098 //国家英语名称
    CONSTANT Long LOCALE_SABBREVCTRYNAME = 7 //国家名称缩写
    CONSTANT Long LOCALE_SNATIVECTRYNAME = 8 //当地语言国家名称
    CONSTANT Long LOCALE_IDEFAULTLANGUAGE = 9 //缺省语言ID
    CONSTANT Long LOCALE_IDEFAULTCOUNTRY = 10 //缺省国家代码
    CONSTANT Long LOCALE_IDEFAULTCODEPAGE = 11 //缺省的OEM代码
    CONSTANT Long LOCALE_SLIST = 12 //list item separator
    CONSTANT Long LOCALE_IDEFAULTANSICODEPAGE = 4100 //缺省的ASCII代码
    CONSTANT Long LOCALE_IDEFAULTMACCODEPAGE = 4113 //缺省的MACINTOH代码
    CONSTANT Long LOCALE_IMEASURE = 13 //0 = 公制, 1 = 美制
    CONSTANT Long LOCALE_SDECIMAL = 14 //decimal separator
    CONSTANT Long LOCALE_STHOUSAND = 15 //thousand separator
    CONSTANT Long LOCALE_SGROUPING = 16 //digit grouping
    CONSTANT Long LOCALE_IDIGITS = 17 //number of fractional digits
    CONSTANT Long LOCALE_ILZERO = 18 //leading zeros for decimal
    CONSTANT Long LOCALE_SNATIVEDIGITS = 19 //native ascii 0-9


    //Windows NT 4.0/2000/XP
    CONSTANT Long LOCALE_SISO639LANGNAME = 89 //ISO 语言缩写名称
    CONSTANT Long LOCALE_SISO3166CTRYNAME = 90 //ISO 国家缩写名称
    //Windows 2000/XP
    CONSTANT Long LOCALE_IDEFAULTEBCDICCODEPAGE = 4114 //缺省的EBCDIC代码
    CONSTANT Long LOCALE_SSORTNAME = 4115 //排序名称

    CONSTANT Long LOCALE_INEGNUMBER = 4112 //negative number mode

    CONSTANT Long LOCALE_SDATE = 29 //日期分隔符
    CONSTANT Long LOCALE_STIME = 30 //时间风隔符
    CONSTANT Long LOCALE_SSHORTDATE = 31 //短日期格式
    CONSTANT Long LOCALE_SLONGDATE = 32 //长日期格式
    CONSTANT Long LOCALE_STIMEFORMAT = 4009 //时间格式
    CONSTANT Long LOCALE_IDATE = 33 //短日期格式的排列顺序
    CONSTANT Long LOCALE_ILDATE = 34 //长日期格式的排列顺序
    CONSTANT Long LOCALE_ITIME = 35 //时间格式标示符号
    CONSTANT Long LOCALE_ITIMEMARKPOSN = 4011 //时间标记符位置
    CONSTANT Long LOCALE_ICENTURY = 36 //世纪识别符 (短日期)
    CONSTANT Long LOCALE_ITLZERO = 37 //时间数字前面前导0
    CONSTANT Long LOCALE_IDAYLZERO = 38 //日期数字前面前导0 (短日期)
    CONSTANT Long LOCALE_IMONLZERO = 39 //月份数字前面前导0 (短日期)
    CONSTANT Long LOCALE_S1159 = 40 //AM 指示符
    CONSTANT Long LOCALE_S2359 = 41 //PM 指示符
    CONSTANT Long LOCALE_ICALENDARTYPE = 4105 //日历类型指示符
    CONSTANT Long LOCALE_IPAPERSIZE = 4106 //0 = letter, 1 = a4, 2 = legal, 3 = a3
    CONSTANT Long LOCALE_IOPTIONALCALENDAR = 4107 //其它日历类型指示符
    CONSTANT Long LOCALE_IFIRSTDAYOFWEEK = 4108 //一周中的第一天指示符
    CONSTANT Long LOCALE_IFIRSTWEEKOFYEAR = 4109 //一年中的第一周指示符
    CONSTANT Long LOCALE_SDAYNAME1 = 42 //星期一的长名称
    CONSTANT Long LOCALE_SDAYNAME2 = 43 //星期二的长名称
    CONSTANT Long LOCALE_SDAYNAME3 = 44 //星期三的长名称
    CONSTANT Long LOCALE_SDAYNAME4 = 45 //星期四的长名称
    CONSTANT Long LOCALE_SDAYNAME5 = 46 //星期五的长名称
    CONSTANT Long LOCALE_SDAYNAME6 = 47 //星期六的长名称
    CONSTANT Long LOCALE_SDAYNAME7 = 48 //星期天的长名称
    CONSTANT Long LOCALE_SABBREVDAYNAME1 = 49 //星期一的缩写名称
    CONSTANT Long LOCALE_SABBREVDAYNAME2 = 50 //星期二的缩写名称
    CONSTANT Long LOCALE_SABBREVDAYNAME3 = 51 //星期三的缩写名称
    CONSTANT Long LOCALE_SABBREVDAYNAME4 = 52 //星期四的缩写名称
    CONSTANT Long LOCALE_SABBREVDAYNAME5 = 53 //星期五的缩写名称
    CONSTANT Long LOCALE_SABBREVDAYNAME6 = 54 //星期六的缩写名称
    CONSTANT Long LOCALE_SABBREVDAYNAME7 = 55 //星期日的缩写名称
    CONSTANT Long LOCALE_SMONTHNAME1 = 56 //一月的长名称
    CONSTANT Long LOCALE_SMONTHNAME2 = 57 //二月的长名称
    CONSTANT Long LOCALE_SMONTHNAME3 = 58 //三月的长名称
    CONSTANT Long LOCALE_SMONTHNAME4 = 59 //四月的长名称
    CONSTANT Long LOCALE_SMONTHNAME5 = 60 //五月的长名称
    CONSTANT Long LOCALE_SMONTHNAME6 = 61 //六月的长名称
    CONSTANT Long LOCALE_SMONTHNAME7 = 62 //七月的长名称
    CONSTANT Long LOCALE_SMONTHNAME8 = 63 //八月的长名称
    CONSTANT Long LOCALE_SMONTHNAME9 = 64 //九月的长名称
    CONSTANT Long LOCALE_SMONTHNAME10 = 65 //十月的长名称
    CONSTANT Long LOCALE_SMONTHNAME11 = 66 //十一月的长名称
    CONSTANT Long LOCALE_SMONTHNAME12 = 67 //十二月的长名称
    CONSTANT Long LOCALE_SMONTHNAME13 = 4110 //十三月的长名称 (如果存在)
    CONSTANT Long LOCALE_SABBREVMONTHNAME1 = 68 //一月的缩写名称
    CONSTANT Long LOCALE_SABBREVMONTHNAME2 = 69 //二月的缩写名称
    CONSTANT Long LOCALE_SABBREVMONTHNAME3 = 70 //三月的缩写名称
    CONSTANT Long LOCALE_SABBREVMONTHNAME4 = 71 //四月的缩写名称
    CONSTANT Long LOCALE_SABBREVMONTHNAME5 = 72 //五月的缩写名称
    CONSTANT Long LOCALE_SABBREVMONTHNAME6 = 73 //六月的缩写名称
    CONSTANT Long LOCALE_SABBREVMONTHNAME7 = 74 //七月的缩写名称
    CONSTANT Long LOCALE_SABBREVMONTHNAME8 = 75 //八月的缩写名称
    CONSTANT Long LOCALE_SABBREVMONTHNAME9 = 76 //九月的缩写名称
    CONSTANT Long LOCALE_SABBREVMONTHNAME10 = 77 //十月的缩写名称
    CONSTANT Long LOCALE_SABBREVMONTHNAME11 = 78 //十一月的缩写名称
    CONSTANT Long LOCALE_SABBREVMONTHNAME12 = 79 //十二月的缩写名称
    CONSTANT Long LOCALE_SABBREVMONTHNAME13 = 4111 //十三月的缩写名称 (如果存在)
    CONSTANT Long LOCALE_SPOSITIVESIGN = 80 //positive sign
    CONSTANT Long LOCALE_SNEGATIVESIGN = 81 //negative sign

    CONSTANT Long LOCALE_SYEARMONTH = 4102 //year month format string
    CONSTANT Long LOCALE_IDIGITSUBSTITUTION = 4116 //0 = none, 1 = context, 2 = native digit

     

    2. Delphi获得与设置系统时间格式

      出自: http://www.cnblogs.com/mingdep/archive/2012/1/1.html

    在Delphi中,特别是在写管理系统软件时,经常要用到 FormatDateTime 以将 TDateTime 格式的日期时间转换成字符串形式的值显示或保存起来,或者用 StrToDateTime将字符串形式的日期时间转换成 TDateTime 然后再做其他操作。
    在进行时间或日期的转换时,会使用系统当前设定的时间日期格式。而如果时间日期格式与字符串中的表示方式不相符,会使转换过程失败。例如当前短日期格式设定为'yyyy/MM/dd',而要转为 '2006-10-20'这样的字符串为日期,就会报错,说这不是一个有效的日期。
    所以在进行转换前,要确保系统的日期时间格式与程序中使用的相符。一种方法是在安装时由安装程序设置,或者明确告诉用户必须设置成要求格式。另一种就是程序在启动时,自动设定为需要的格式,退出程序时再恢复原来的设置。


    需要用到的有两个Windows API,一个是 GetLocaleInfo,一个是 SetLocaleInfo

    查API说明:
    int GetLocaleInfo(
    LCID Locale, // locale identifier ,设置信息的范围,是系统级,还是当前用户
    LCTYPE LCType, // type of information,设置信息的类型
    LPTSTR lpLCData, // address of buffer for information,设置成的值,必须用 pchar的格式传进去
    int cchData // size of buffer
    );

    BOOL SetLocaleInfo(
    LCID Locale, // locale identifier,同上
    LCTYPE LCType, // type of information to set
    LPCTSTR lpLCData // pointer to information to set
    );

    两个函数的参数很类似,其中 Locale可以取两个值:LOCALE_SYSTEM_DEFAULT,表示要操作的是系统默认的设置; LOCALE_USER_DEFAULT,表示要操作的是当前用户的设置。还可以取其他值,用于具体修改某种语言区域的设置。一般取 LOCALE_USER_DEFAULT。
    LCType,表示要操作信息的类型,也就是要操作的是哪一种设置。可用的值有很多,Delphi的联机帮助,或者查MSDN,都有一个大列表。但跟日期时间格式相关的一共有这几个:
    LOCALE_SSHORTDATE :短日期格式
    LOCALE_SLONGDATE :长日期格式
    LOCALE_STIMEFORMAT:时间格式
    另外 LOCALE_STIME 表示时间分隔符,LOCALE_SDATE 表示日期分隔符。可以单独使用,也可以在使用 LOCALE_SSHORTDATE 和 LOCALE_STIMEFORMAT 的同时一并修改,所以不需要单独操作。
    使用GetLocaleInfo或SetLocaleInfo时,每次只能操作一个类型。比如要同时设置短日期格式、长日期格式、时间格式,就必须分别用三个类型代号调用三次 SetLocaleInfo。
    还要一个要注意的问题是,设置日期时间格式后,应该向当前系统的激活窗口广播发送 WM_SETTINGCHANGE 消息,否则即使修改了,程序里还是不能用的。
    以下是获取和设置的程序片断。

    1.//获取时间日期格式

    procedure GetDateTimeFormat();
    var
    buf:pchar;
    i:integer;
    GPrevShortDate,GPrevLongDate,GPrevTimeFormat:string;
    begin
    getmem(buf,100);
    i:=100; //i必须在调用前赋值为buf缓冲区的长度。如果设为0或负值,将取不到设置的值
    GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SSHORTDATE,buf,i); //取当前用户设置,短日期格式。
    GPrevShortDate:=string(buf);
    i:=100;
    GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SLONGDATE,buf,i); //取长日期格式
    GPrevLongDate:=string(buf);
    i:=100;
    GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_STIMEFORMAT,buf,i); //取时间格式
    GPrevTimeFormat:=string(buf);
    FreeMem(buf);
    end;
    2.//设置时间格式

    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''日'''));
    SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_STIMEFORMAT,pchar('H:mm:ss')); //设置时间 
    SendMessageTimeOut(HWND_BROADCAST,WM_SETTINGCHANGE,0,0,SMTO_ABORTIFHUNG,10,p);
    //设置完成后必须调用,通知其他程序格式已经更改,否则即使是程序自身也不能使用新设置的格式
    end;

    在程序初始化时调用GetDateTimeFormat,将取出的设置保存起来,然后用SetDateTimeFormat设置需要的格式。在程序退出时再次调用SetDateTimeFormat将保存的值写回去。

     

    展开全文
  • .NET设置日期格式转换

    2013-02-27 10:38:57
    .NET设置日期格式转换 我们经常会遇到对时间进行转换,达到不同的显示效果,默认格式为:2006-6-6 14:33:34  如果要换成成200606,06-2006,2006-6-6或更多的格式该怎么办呢? 这里将要用到:DateTime.ToString的...
  • bat批处理日期时间格式设置使用

    万次阅读 2016-07-21 17:09:57
    bat批处理日期时间格式设置使用小结。 @echo off @title 字符串的编辑测试(下面描述用的箭头→ ← 分别表示向右、向左的意思) set aa=1234567890 echo 说明:下面复合变量中,逗号前的数字表示指针...
  • 显示长日期格式的系统时间

    千次阅读 2019-03-31 13:21:54
    长格式是以“YYYY年MM月DD日 星期W”的格式来显示的 应用JavaScript中的Date对象来实现的,创建一个Date对象时,如果该对象不包含任何构造参数,并且不通过setXXX()方法设置该对象中的年,月,日等值,那么该对象则...
  • 在页面引入:http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>   然后在你想要显示的地方设置:   这样就可以显示pattern里的格式
  • 设置日期选择控件格式 可在界面的onload扩展点后置脚本中添加过滤 参考实现: 表头日期控件的日期设置 // 直接在日期控件设置即可 pluginCtx.getKDDatePicker("bizDate").setDatePattern("yyyy-MM-dd HH:mm:ss");...
  • C#时间/日期格式大全,C#时间/日期函数大全 中国区时间默认默认格式为:2005-6-6 14:33:34 如果要换成成200506,06-2005,2005-6-6或更多的该怎么办呢? 我们要用到: DateTime.ToString的方法(String, IFormatProvider) ...
  • Jackson JSON对日期格式的解析设置
  • Navicat日期时间格式

    万次阅读 2017-04-24 19:07:03
    Navicat日期时间格式 ... 默认的日期时间格式为:yyyy-MM-dd hh:mm:ss+设置的长度  Datetime类型的长度,最大6,可以设置0~6的任意数值,表示它的精度。  这里设置为0,即到时分秒结束,执行插入语句,如下
  • Win10下查看当天修改的文件,修改时间会显示类似:Today, ‎2019‎年‎2‎月‎20‎日, ‏‎56 minutes ago ,WTF???
  • 日期时间格式

    2012-05-21 08:28:08
    公共抽象类 的DateFormat 扩展格式 java.lang.Object的 ↳ java.text.Format子 ...一个抽象类,日期/时间格式化子类的格式和解析日期或时间在一个语言无关的方式。日期/时间格式化子类,如SimpleDateFormat的...
  • 格式日期时间

    2016-06-30 12:07:57
    格式日期时间
  • Mysql数据库中日期格式设置

    千次阅读 2018-06-04 14:38:02
    第一步,首先字段日期类型是,datatime 不是date (date类型只是有年月日); 第二部,执行这个sql SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(这里写日期字段的名字),'%Y-%m-%d %H:%i:%s') FROM 这里写是那张表;...
  • Excel 日期时间格式讲解

    千次阅读 2017-11-03 15:24:29
    Excel中日期时间格式单元格类型Numeric,表示Excel日期时间内部以double数值存储 double整数部分表示日期,表示自1900-1-1来的天数 double小数部分表示时间 1.2 日期时间转double方法org.apache.poi.ss.usermodel....
  • C#中将日期格式设置为yyyy/MM/dd

    千次阅读 2010-08-11 20:28:00
    今天遇到个问题在C#中将日期格式设置为yyyy/MM/dd,我是这样写的: DateTime.Now.ToString("yyyy/MM/dd"); 可是获取到的日期还是显示yyyy-MM-dd。 上网一问,原来应该这么写 DateTime.Now...
  • 在C#中,ToShortDateString()是用于显示短日期格式的方法,如果使用下面的语句: Label1.Text = DateTime.Now.ToShortDateString(); 那么,在Label1中会显示什么样的短日期格式呢? 答案是:不确定。 可能是:2013-...
  • c#格式化数据 日期格式设置示例 format使用 DataFormatString使用 asp.net2.0 c#格式化数据 日期格式设置示例 format使用 DataFormatString使用 DataFormatString="{0:格式字符串}" 在DataFormatString ...
  • JavaScript:时间日期格式验证大全

    万次阅读 2015-08-24 16:10:47
    * 校验是否YYYY-MM-DD 日期格式 * 校验是否YYYY-MM-DD HH:mm 日期+时分格式 * 校验是否YYYY-MM-DD HH:mm:ss 日期+时分秒格 * 校验是否HH:mm:ss 时分秒格式 * 校验是否HH:mm 时分格
  • 如何统计项目总工时? 将所有resouce过滤出来,统计出来就是总工时啦. 2. 修改项目日期格式,便于贴到google sheet后,日期格式保持一致 设置Project起始日期:
  • //java 时间格式化问题 SimpleDateFormat sdf = new SimpleDateFormat(“HH:mm:ss”, Locale.CHINA);;//注意:出现相差8小时就是时区问题,要设置时区Locale.CHINA,不然默认是格林时区 Java Date,long,String ...
  • Mysql中如何设置日期字段默认值当前日期 2017年09月09日 01:23:12 hacker_boy 阅读数:6081 获得当前时间 select current_time; 获得当前日期 select current_date; Select CurDate(); Select CurTime(); ...
  • Java时间日期格式

    万次阅读 2019-07-04 11:10:51
    转:... Java时间格式转换大全 2 3 import java.text.*; 4 import java.util.Calendar; 5 public class VeDate { 6 /** 7 * 获取现在时间 8 * 9 * @retur...
  • C#中的日期格式设置

    2008-09-15 09:38:00
    用 GridView 绑定时间字段时需要把时间格式化成想要的格式比如:DataFormatString="{0:yyyy-MM-dd}"; 但得到的效果仍然时默认的全部显示格式,什么呢时因为您少设置了一项 htmlencode属性,默认时true,把此属性更改...
  • linux date命令日期时间输出格式

    千次阅读 2019-01-21 11:59:52
    date命令日期时间输出格式
  • 时间日期格式化用法

    千次阅读 2014-02-21 17:54:21
    另附上时间格式化详细用法: ======================= 格式字符 关联属性/说明  d ShortDatePattern  D LongDatePattern  f 完整日期和时间(长日期和短时间)  F FullDateTimePattern(长日期和长...
  • 获取当前日期格式设置

    千次阅读 2017-02-17 14:53:07
    * 获取现在时间 * * @return 返回时间类型 yyyy-MM-dd HH:mm:ss */ public static Date getNowDate() { Date currentTime = new Date(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:...
  • yyyyMMddHHmmss转变为日期格式

    千次阅读 2017-01-03 15:55:35
    网上找了一些时间格式的转变,但是都没找到我要的方法 先记下我要的转换方法吧,把yyyyMMddHHmmss格式的字符串转换datetime格式的时间 DateTime dt = DateTime.ParseExact("20060709110901","yyyyMMddHHmmss...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 191,424
精华内容 76,569
关键字:

如何设置日期格式为长日期