WinHttpTimeFromSystemTime 函数 (winhttp.h)

WinHttpTimeFromSystemTime 函数根据 HTTP 版本 1.0 规范设置日期和时间的格式。

语法

WINHTTPAPI BOOL WinHttpTimeFromSystemTime(
  [in]  const SYSTEMTIME *pst,
  [out] LPWSTR           pwszTime
);

参数

[in] pst

指向 SYSTEMTIME 结构的指针,该结构包含要格式化的日期和时间。

[out] pwszTime

指向接收格式化日期和时间的字符串缓冲区的指针。 缓冲区应等于WINHTTP_TIME_FORMAT_BUFSIZE的大小(以字节为单位)。

返回值

如果成功,则返回 TRUE ,否则返回 FALSE 。 要获得更多的错误信息,请调用 GetLastError。 错误代码包括以下内容。

错误代码 说明
ERROR_WINHTTP_INTERNAL_ERROR
发生了内部错误。

注解

即使在异步模式下使用 WinHTTP (即在 WinHttpOpen) 中设置了WINHTTP_FLAG_ASYNC时,此函数也会同步运行。 返回值指示成功或失败。 要获得更多的错误信息,请调用 GetLastError。

注意 对于 Windows XP 和 Windows 2000,请参阅 WinHTTP 起始页的 运行时要求 部分。
 

示例

下面的代码示例代码演示如何将 SYSTEMTIME 结构转换为包含 HTTP 格式时间的字符串。

    SYSTEMTIME  sTime;
    LPWSTR      pwszTimeStr;

    // Get the current time.
    GetSystemTime(&sTime);

    // Allocate memory for the string.
    // Note: WINHTTP_TIME_FORMAT_BUFSIZE is a byte count.
    //       Therefore, you must divide the array by
    //       sizeof WCHAR to get the proper string length.
    pwszTimeStr = new WCHAR[WINHTTP_TIME_FORMAT_BUFSIZE/sizeof(WCHAR)];

    // Convert the current time to HTTP format.
    if(!WinHttpTimeFromSystemTime( &sTime, pwszTimeStr))
    {
        printf( "Error %u in WinHttpTimeFromSystemTime.\n", GetLastError());
    }
    else
    {
        // Print the time.
        printf("Current time is (%S)\n", pwszTimeStr);
    }

    // Free the memory.
    delete [] pwszTimeStr;

要求

   
最低受支持的客户端 Windows XP、Windows 2000 Professional 和 SP3 [仅限桌面应用]
最低受支持的服务器 Windows Server 2003、Windows 2000 Server SP3 [仅限桌面应用]
目标平台 Windows
标头 winhttp.h
Library Winhttp.lib
DLL Winhttp.dll
可再发行组件 Windows XP 和 Windows 2000 上的 WinHTTP 5.0 和 Internet Explorer 5.01 或更高版本。

另请参阅

关于 Microsoft Windows HTTP Services (WinHTTP)

WinHTTP 版本

WinHttpTimeToSystemTime