如何从 QDateTime 生成 HTTP 标头 If-Modified-Since 的时间戳?
我想在请求上设置 If-Modified-Since-header 并从文件的时间戳中获取时间。所以我将时间戳提取到 QDateTime 中。我可以生成类似于 HTTP 使用的日期格式的内容,但我的服务器和客户端使用不同的时区。有没有办法从 Qt 获取时区字符串或其他方法来生成标头字符串。到目前为止,这是我的代码:
QLocale locale(QLocale::English, QLocale::UnitedStates);
QString modificationDate = locale.toString(fileinfo.lastModified(), "ddd, dd MMM yyyy hh:mm:ss 'GMT'");
我必须设置区域设置,因为系统区域设置不同,并且服务器不理解以这种方式生成的格式。如果我可以从 Qt 获取时区,那将会很有帮助,这样我就可以将其添加到字符串而不是常量“GMT”中。但我没有找到获取 Qt 正在使用的时区的方法。
I want to set an If-Modified-Since-header on a request and take the time from the timestamp on the file. So I extracted the timestamp into a QDateTime. I could generate something looking similar to the date-format HTTP uses, but my server and my client use different time-zones. Is there a way to get the timezone-string from Qt or another way to generate the string for the header. Here my code so far:
QLocale locale(QLocale::English, QLocale::UnitedStates);
QString modificationDate = locale.toString(fileinfo.lastModified(), "ddd, dd MMM yyyy hh:mm:ss 'GMT'");
I have to set the locale, because the system-locale is different and the server doesn't understand the format generated that way. It would be helpful, if I could get the timezone from Qt, so that I could add that to the String instead of the constant 'GMT'. But I didn't found a way to get the timezone Qt is using.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我认为这会做:
I think this will do:
这是一个稍微优雅的解决方案,Qt 内部使用它:
Here is an slightly more elegant solution, which is used by Qt internally: