【BOOST C++ 10 时间数据】(4)时间格式输入和输出(11-12)
一、说明
本章到目前为止描述的示例程序以 2014-May-12 格式写入结果。 Boost.DateTime 允许您以不同的格式显示结果。日历日期和时间可以使用 boost::date_time::date_facet 和 boost::date_time::time_facet 格式化。
二、示例代码
Boost.DateTime 使用标准中的语言环境概念。要格式化日历日期,必须在语言环境中创建并安装 boost::date_time::date_facet 类型的对象。一个描述新格式的字符串被传递给 boost::date_time::date_facet 的构造函数。示例 36.20 传递“%A, %d %B %Y”,它指定星期几之后是完整的月份日期:2014 年 5 月 12 日星期一。
示例 36.20。用户定义的日期格式
#include <boost/date_time/gregorian/gregorian.hpp>
#include <iostream>
#include <locale>using namespace boost::gregorian;int main()
{date d{2014, 5, 12};date_facet *df = new date_facet{"%A, %d %B %Y"};std::cout.imbue(std::locale{std::cout.getloc(), df});std::cout << d << '\n';
}
Boost.DateTime 提供了许多格式标志,每个标志都由百分号后跟一个字符组成。 Boost.DateTime 的文档包含所有受支持标志的完整概述。
如果程序由位于德国或德语国家的人使用,最好用德语而不是英语显示工作日和月份。
示例 36.21。更改工作日和月份的名称
#include <boost/date_time/gregorian/gregorian.hpp>
#include <string>
#include <vector>
#include <locale>
#include <iostream>using namespace boost::gregorian;int main()
{std::locale::global(std::locale{"German"});std::string months[12]{"Januar", "Februar", "M\xe4rz", "April","Mai", "Juni", "Juli", "August", "September", "Oktober","November", "Dezember"};std::string weekdays[7]{"Sonntag", "Montag", "Dienstag","Mittwoch", "Donnerstag", "Freitag", "Samstag"};date d{2014, 5, 12};date_facet *df = new date_facet{"%A, %d. %B %Y"};df->long_month_names(std::vector<std::string>{months, months + 12});df->long_weekday_names(std::vector<std::string>{weekdays,weekdays + 7});std::cout.imbue(std::locale{std::cout.getloc(), df});std::cout << d << '\n';
}
可以通过将包含所需名称的向量传递给 boost::date_time::date_facet 类的成员函数 long_month_names() 和 long_weekday_names() 来更改工作日和月份的名称。示例 36.21 现在将 Montag, 12. Mai 2014 写入标准输出流。
注意
要在 POSIX 操作系统上运行该示例,请将“German”替换为“de_DE”,并确保安装了 German 的语言环境。
Boost.DateTime 在格式化输入和输出方面是灵活的。除了输出类 boost::date_time::date_facet 和 boost::date_time::time_facet 之外,类 boost::date_time::date_input_facet 和 boost::date_time::time_input_facet 也可用于格式化输入。所有四个类都提供了成员函数来配置 Boost.DateTime 提供的不同对象的输入和输出。例如,可以指定 boost::gregorian::date_period 类型的周期如何输入和输出。要查看格式化输入和输出的所有可能性,请查看 Boost.DateTime 的文档。
【BOOST C++ 10 时间数据】(4)时间格式输入和输出(11-12)相关推荐
- 数据分析--matplotlib 设置时间数据的刻度格式
数据分析--matplotlib 设置时间数据的刻度格式 数据分析--matplotlib 设置时间数据的刻度格式 数据分析–matplotlib 设置时间数据的刻度格式 在绘制图表时, 如果横轴是p ...
- C语言-格式输入与输出
格式输入与输出 前言 1.格式输出函数printf 2.格式输入函数scanf 3.字符输出函数putchar 4.字符输入函数getchar 前言:格式输入输出函数有 输入函数printf( ...
- 《数据清洗》8.3.3 加载时间数据至时间维度表
需求:数据库中生成86400条数据 每条数据对应一天的1秒 起始: 最终: 数据库表dim_time各个字段的含义: 报错原因: 表字段的名称和mysql表结构不一致. 表字段和mysql表字段数量不 ...
- 使用openssl完成aes-cbc模式的数据加解密,输入和输出都是字符串的形式
代码 #include <cstring> #include <memory>#include <openssl/aes.h> #include <opens ...
- 使用openssl完成aes-ecb模式的数据加解密,输入和输出都是字符串类型
代码 #include <cstring> #include <memory>#include <openssl/aes.h> #include <opens ...
- python 表格格式输出_利用python对excel中一列的时间数据更改格式操作
问题场景:需要将下列的交期一列的数据格式更改成2019/05/10 存货编码 尺寸 数量 交期 0 K10Y0190000X B140 200 2019-05-10 00:00:00 1 K10Y01 ...
- 在hive中对日期数据进行处理,毫秒级时间转化为yyyy-MM-dd格式
我们看到日志的时间是1414381913000 ,我们在需求中需要对每天的数据进行分析,所以需要对这个日志数据进行转化格式. 常用时间类型格式转换: from_unixtime(bigint unix ...
- python对excel数据更改_利用python对excel中一列的时间数据更改格式代码示例
本篇文章小编给大家分享一下利用python对excel中一列的时间数据更改格式代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 问题场景:需要将 ...
- 用python对excel中一列的时间数据更改格式
用python对excel中一列的时间数据更改格式 问题场景:需要将下列的交期一列的数据格式更改成2019/05/10 存货编码 尺寸 数量 交期 0 K10Y0190000X B140 200 20 ...
最新文章
- Python在ubuntu中更改Python和pip指向
- 常考数据结构与算法:重建二叉树
- PHP连接MSSQL
- mysql的二级分区_分布式数据库一级分区和二级分区
- mmap函数_分析由 mmap 导致的内存泄漏
- 决策过程并举例_成本效益分析举例
- Chrome浏览器去广告插件 —— (Adblock Plus)
- 关于中英文等宽字体的设置
- 许小年:企业家精神的衰落与重振
- 后缀是lnk是什么文件_ink是什么文件
- MES的关键数据模型S95标准介绍
- Zabbix 监控之项目类型-Trapper
- postgresql 命令行操作
- Autofac的高级使用——Autofac.2.6.3.862
- python 屏幕找图 点击,使用Python脚本在windows屏幕找图
- pythonturtle简单绘图_10分钟轻松学会 Python turtle 绘图
- vs2008编译QT开源项目--太阳神三国杀源码分析(四) 动画
- 全程干货,用 python 下载某站全部【免抠图片】,图片背景透明,格式PNG
- python用pip安装numpy完整命令_Python--Numpy安装
- ArcGisPro脚本工具【8】——用地图斑导出用地用海汇总表
热门文章
- MySQL RANGE分区
- 均值、中值、标准差、四分位差(C++)
- windows平台下使用cmake构建静态lib库以及使用静态lib库gtest项目
- ubantu20切换源
- BufferedReader读文件
- python 列表推导式详解
- 写一个函数insert,用来向一个动态链表插入节点。
- 服务器网络适配器多路传送器协议,win8系统开启Microsoft网络适配器多路传送协议的具体方法...
- Synergy报错 grabbed clipboard 和 disconnected 连接不上客户端
- 将一组数组尽可能均匀的分成两堆,使两个堆中的数的和尽可能相等