递归火山软件开发平台

标题: 取UTC时间,如何变成文本? [打印本页]

作者: hs999xl    时间: 2024-5-11 13:17
标题: 取UTC时间,如何变成文本?
HTTP响应头中的Date字段的值必须遵循RFC 1123中规定的日期时间格式,如Day Mon DD HH:MM:SS YYYY\r\n。它不能是一串简单的数字。这个字段用于表示消息发送的日期和时间,因此它必须是一个人类可读的日期时间字符串。
如果尝试将Date字段设置为一个数字,这将被视为一个无效的日期时间格式,可能会导致接收端在处理HTTP响应时出错或忽略该字段。
长整数的UTC时间怎么取出年月日、时分秒、星期?


作者: hs999xl    时间: 2024-5-11 13:39
有办法了,我们的时间减去8小时就是UTC时间了,然后通过时间操作类取出年月日等等。
作者: Xelloss0618    时间: 2024-5-11 14:04
<火山程序 类型 = "通常" 版本 = 1 />

方法 取RFC1123时间 <公开 类型 = 文本型 @禁止流程检查 = 真>
{
    @ time_t rawtime;
    @ struct tm timeinfo;
    @ ::time(&rawtime);
    @ ::gmtime_s(&timeinfo, &rawtime);
    @ WCHAR szTime[256] { 0 };
    @ ::wcsftime(szTime, sizeof(szTime), L"%a, %d %b %Y %T GMT", &timeinfo);
    @ return @an<CVolString>(szTime);
}

作者: hs999xl    时间: 2024-5-11 14:48
<火山程序 类型 = "通常" 版本 = 1 />

方法 方法_生成当前UTC时间文本 <公开 静态 类型 = 文本型 注释 = "根据现行时间,生成UTC文本格式时间" 返回值注释 = "" 返回值注释 = "" 返回值注释 = "" 折叠>
{
    变量 局部_现行UTC时间 <类型 = 小数>
    局部_现行UTC时间 = 时间戳到时间 (取时间戳 (取现行时间 ()) - 60 * 60 * 8)
    变量 局部_返回数据 <类型 = 文本型>
    // 星期
    加入文本 (局部_返回数据, 多项选择 (取星期几 (局部_现行UTC时间) - 1, "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat") + ", ")
    // 日
    加入文本 (局部_返回数据, 到文本 (取日 (局部_现行UTC时间)) + " ")
    // 月
    加入文本 (局部_返回数据, 多项选择 (取月份 (局部_现行UTC时间) - 1, "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec") + " ")
    // 年
    加入文本 (局部_返回数据, 到文本 (取年份 (局部_现行UTC时间)) + " ")
    // 时
    变量 局部_小时 <类型 = 文本型>
    局部_小时 = 选择 (取文本长度 (到文本 (取小时 (局部_现行UTC时间))) == 1, "0" + 到文本 (取小时 (局部_现行UTC时间)), 到文本 (取小时 (局部_现行UTC时间)))
    // 分
    变量 局部_分钟 <类型 = 文本型>
    局部_分钟 = 选择 (取文本长度 (到文本 (取分钟 (局部_现行UTC时间))) == 1, "0" + 到文本 (取分钟 (局部_现行UTC时间)), 到文本 (取分钟 (局部_现行UTC时间)))
    // 秒
    变量 局部_秒 <类型 = 文本型>
    局部_秒 = 选择 (取文本长度 (到文本 (取秒 (局部_现行UTC时间))) == 1, "0" + 到文本 (取秒 (局部_现行UTC时间)), 到文本 (取秒 (局部_现行UTC时间)))
    // 时间
    加入文本 (局部_返回数据, 局部_小时 + ":" + 局部_分钟 + ":" + 局部_秒 + " ")
    // GMT后缀
    加入文本 (局部_返回数据, "GMT")
    返回 (局部_返回数据)

}





欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4