取UTC时间,如何变成文本?
HTTP响应头中的Date字段的值必须遵循RFC 1123中规定的日期时间格式,如Day Mon DD HH:MM:SS YYYY\r\n。它不能是一串简单的数字。这个字段用于表示消息发送的日期和时间,因此它必须是一个人类可读的日期时间字符串。如果尝试将Date字段设置为一个数字,这将被视为一个无效的日期时间格式,可能会导致接收端在处理HTTP响应时出错或忽略该字段。长整数的UTC时间怎么取出年月日、时分秒、星期?有办法了,我们的时间减去8小时就是UTC时间了,然后通过时间操作类取出年月日等等。 <火山程序 类型 = "通常" 版本 = 1 />
方法 取RFC1123时间 <公开 类型 = 文本型 @禁止流程检查 = 真>
{
@ time_t rawtime;
@ struct tm timeinfo;
@ ::time(&rawtime);
@ ::gmtime_s(&timeinfo, &rawtime);
@ WCHAR szTime { 0 };
@ ::wcsftime(szTime, sizeof(szTime), L"%a, %d %b %Y %T GMT", &timeinfo);
@ return @an<CVolString>(szTime);
}
<火山程序 类型 = "通常" 版本 = 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")
返回 (局部_返回数据)
}
页:
[1]