来自 RFC 的 ABNF 表示点后必须至少有一位数字,没有定义的最大值。
没有真正需要 Z,您可以使用 00:00 代替,这可以通过构面实现
在极少数情况下,date_time 会生成一个“Z”。请参阅 boost (local_date_time.hpp) 的代码快照,这表明如下:
std::string zone_name(bool as_offset=false) const
{
if(zone_ == boost::shared_ptr()) {
if(as_offset) {
return std::string("Z");
}
else {
return std::string("Coordinated Universal Time");
}
...
如果在 zone_abbrev 函数中有类似的...
以及这个的示例用法
slimak@daradei:~/store/kodowanie/moje/test$ cat boost_date_time.cpp
#include "boost/date_time.hpp"
#include "boost/date_time/local_time/local_time.hpp"
using namespace boost::posix_time;
using namespace boost::local_time;
int main()
{
local_date_time t = local_sec_clock::local_time(time_zone_ptr());
local_time_facet* lf(new local_time_facet("%Y-%m-%dT%H:%M:%S%F%Q"));
std::cout.imbue(std::locale(std::cout.getloc(), lf));
std::cout << t << std::endl;
return 0;
}
slimak@daradei:~/store/kodowanie/moje/test$ g++ boost_date_time.cpp && ./a.out
2009-01-30T12:15:56Z
slimak@daradei:~/store/kodowanie/moje/test$