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 [仅限桌面应用]
目标平台 Windows
标头 shlwapi.h
Library Shlwapi.lib
DLL Shlwapi.dll (5.0 或更高版本)

另请参阅

GetDateFormat

GetTimeFormat