SHFormatDateTimeW 函数 (shlwapi.h)

[SHFormatDateTime 可用于“要求”部分中指定的操作系统。 在后续版本中可能会更改或不可用。

生成指定为 FILETIME 结构的 时间的字符串表示形式。

语法

int SHFormatDateTimeW(
  [in]                const FILETIME *pft,
  [in, out, optional] DWORD          *pdwFlags,
  [out]               LPWSTR         pszBuf,
                      UINT           cchBuf
);

参数

[in] pft

类型:const FILETIME UNALIGNED*

指向 FILETIME 结构的指针,其时间将转换为字符串。

[in, out, optional] pdwFlags

类型:DWORD*

指向 DWORD 值的指针,该值包含指定日期和时间格式的按位标志。

调用函数时,可以组合以下标志中的零个或多个,但有例外。 还可以将此参数设置为 NULL,在这种情况下,函数假定设置了FDTF_DEFAULT标志。

FDTF_SHORTTIME(0x00000001)

0x00000001。 在控制面板中设置 区域和语言选项 应用程序指定的一天时间的格式,但不设置秒。 此标志不能与FDTF_LONGTIME结合使用。

短时间已成功设置格式。

FDTF_SHORTDATE(0x00000002)

0x00000002。 在控制面板中,区域和语言选项 应用程序中的短日期格式指定日期的格式。 此标志不能与FDTF_LONGDATE结合使用。

短日期已成功设置格式。

FDTF_DEFAULT

等效于FDTF_SHORTDATE |FDTF_SHORTTIME。

FDTF_LONGDATE(0x00000004)

0x00000004。 在控制面板中,区域和语言选项 应用程序中的长日期格式指定日期的格式。 此标志不能与FDTF_SHORTDATE结合使用。

长日期已成功设置格式。

FDTF_LONGTIME (0x00000008)

0x00000008。 在控制面板中设置 区域和语言选项 应用程序指定的一天时间的格式,包括秒。 此标志不能与FDTF_SHORTTIME结合使用。

长时间已成功设置格式。

FDTF_RELATIVE(0x00000010)

0x00000010。 如果设置了FDTF_LONGDATE标志,并且 FILETIME 结构中的日期与调用 SHFormatDateTime 日期相同,则星期几(如果存在)更改为“Today”。 如果结构中的日期是前一天,则星期几(如果存在)更改为“昨天”。

相对表示法用于日期。

FDTF_LTRDATE(0x00000100)

0x00000100。 添加从左到右阅读布局的标记。 此标志不能与FDTF_RTLDATE结合使用。

FDTF_RTLDATE(0x00000200)

0x00000200。 为从右到左的阅读布局添加标记。 此标志不能与FDTF_LTRDATE结合使用。

FDTF_NOAUTOREADINGORDER(0x00000400)

0x00000400。 不插入任何阅读顺序标记。 通常,如果没有FDTF_LTRDATE或FDTF_RTLDATE标志,SHFormatDateTime 确定用户默认区域设置的读取顺序,插入阅读顺序标记,并相应地更新 pdwFlags 输出值。 此标志可防止该进程发生。 它最常由 SHFormatDateTime的旧调用方使用。 此标志不能与FDTF_RTLDATE或FDTF_LTRDATE结合使用。

Windows Server 2003 和 Windows XP:此值不可用。

函数返回时,此参数指向的 DWORD 值可以包含以下标志的零个或多个。

FDTF_SHORTTIME(0x00000001)

0x00000001。 在控制面板中设置 区域和语言选项 应用程序指定的一天时间的格式,但不设置秒。 此标志不能与FDTF_LONGTIME结合使用。

短时间已成功设置格式。

FDTF_SHORTDATE(0x00000002)

0x00000002。 在控制面板中,区域和语言选项 应用程序中的短日期格式指定日期的格式。 此标志不能与FDTF_LONGDATE结合使用。

短日期已成功设置格式。

FDTF_LONGDATE(0x00000004)

0x00000004。 在控制面板中,区域和语言选项 应用程序中的长日期格式指定日期的格式。 此标志不能与FDTF_SHORTDATE结合使用。

长日期已成功设置格式。

FDTF_LONGTIME (0x00000008)

0x00000008。 在控制面板中设置 区域和语言选项 应用程序指定的一天时间的格式,包括秒。 此标志不能与FDTF_SHORTTIME结合使用。

长时间已成功设置格式。

FDTF_RELATIVE(0x00000010)

0x00000010。 如果设置了FDTF_LONGDATE标志,并且 FILETIME 结构中的日期与调用 SHFormatDateTime 日期相同,则星期几(如果存在)更改为“Today”。 如果结构中的日期是前一天,则星期几(如果存在)更改为“昨天”。

相对表示法用于日期。

[out] pszBuf

类型:LPTSTR

指向接收格式化日期和时间的缓冲区的指针。 缓冲区必须足够大,才能包含由 cchBuf 参数指定的 TCHAR 字符数,包括终止 null 字符。

cchBuf

类型:UINT

pszBuf指向的缓冲区可以包含的 TCHAR 数。

返回值

类型:int

返回写入缓冲区的 TCHAR 数,包括终止 null 字符。 失败时,此值为 0。

言论

注意

shlwapi.h 标头将 SHFormatDateTime 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows XP [仅限桌面应用]
支持的最低服务器 Windows Server 2003 [仅限桌面应用]
目标平台 窗户
标头 shlwapi.h
Shlwapi.lib
DLL Shlwapi.dll (版本 5.0 或更高版本)

另请参阅

GetDateFormat

GetTimeFormat