您可以使用GetTimeFormat和GetDateFormat功能,以适合当前语言环境的格式检索任何给定时间或日期的字符串。
对于GetTimeFormat,【lpTime】指向的SYSTEMTIME结构中的时间值必须有效。该函数检查每个时间值以确定它在适当的值范围内。如果任何时间值超出正确的范围,该函数将失败,并将最后一个错误设置为ERROR_INVALID_PARAMETER。
该函数忽略【lpTime】指向的SYSTEMTIME结构的日期部分:wYear,wMonth,wDayOfWeek和wDayso.
如果存在时间标记并且未设置TIME_NOTIMEMARKER标志,则该函数将根据指定的区域设置标识符来定位时间标记。时间标记的例子是美国英语“de”的“AM”和“PM”。和“杜”。为墨西哥西班牙语。
如果指定了TIME_NOMINUTESORSECONDS或TIME_NOSECONDS,则该函数将删除分钟和/或秒元素之前的分隔符。
如果指定了TIME_NOTIMEMARKER,则该函数将删除时间标记之前和之后的分隔符。
如果指定了TIME_FORCE24HOURFORMAT,该函数将显示任何现有的时间标记,除非TIME_NOTIMEMARKER标志也被设置。
该函数不包括毫秒作为格式化时间字符串的一部分。
要使用LOCALE_NOUSEROVERRIDE标志,【lpFormat】必须为NULL。
对于错误的格式字符串不会返回错误。该函数只需形成最佳的时间字符串即可。如果超过两个小时,分钟,秒或时间标记格式图片被传入,则该函数默认为两个。例如,有效的唯一时间标记画面是L“t”,L“tt”(“L”表示Unicode(16位字符)字符串)。如果传入L“ttt”,则函数假定为L“tt”。
对于GetDateFormat,【The function checks each of the date values: year, month, day, and day of week.】指向的SYSTEMTIME结构中的日期值必须有效。该函数检查每个日期值:年,月,日和星期几。如果星期几不正确,则该函数使用正确的值,并且不返回错误。如果任何其他日期值超出了正确的范围,该函数将失败,并将最后一个错误设置为ERROR_INVALID_PARAMETER。
日期名称,缩写日期名称,月份名称和缩写月份名称都基于给定的区域设置标识符进行本地化。该函数忽略【The function checks each of the date values: year, month, day, and day of week.】指向的SYSTEMTIME结构的时间部分:wHour,wMinute,wSecond和wMilliseconds.
标记DATE_USE_ALT_CALENDAR将始终使用定义为该备用日历的默认格式的格式,而不是使用任何用户替代。只有在没有指定的备用日历的默认格式的情况下才会使用用户覆盖。
DATE_SHORTDATE和DATE_LONGDATE标志选项是互斥的。如果没有指定,并且【lpFormat】为NULL,那么DATE_SHORTDATE是默认值。
如果【lpFormat】参数不为NULL,则【dwFlags中】参数必须为零。当格式化字符串被指定时,没有任何标志是有意义的。
对于错误的格式字符串不会返回错误。该函数只需形成最佳的日期字符串即可。例如,唯一的有效年份图片是L“yyyy”和L“yy”(“L”表示Unicode(16位字符)字符串)。如果传入L“y”,则函数假定为L“yy”。如果L“yyy”被传入,则该函数假定为“yyyy”。如果超过4个日期(L“dddd”)或4个月(L“MMMM”)图像,则该函数默认为L“dddd”或L“MMMM”。
应在日期字符串中保留其确切形式的任何文本都应包含在日期格式图片的单引号内。单引号也可以用作转义字符,以允许单引号本身显示在日期字符串中。但是,转义序列必须包含在两个单引号内。例如,要将日期显示为“May '93”,格式字符串将为:L“MMMM”“”yy“第一个和最后一个单引号是包围引号。第二个和第三个单引号是允许在本世纪前显示单引号的转义序列。