C++ 如何从C++;?
我正试图编写一个程序,解析一个表示格式为YYYYMMDD的日期的字符串(使用C++ 如何从C++;?,c++,date,datetime,c++11,C++,Date,Datetime,C++11,我正试图编写一个程序,解析一个表示格式为YYYYMMDD的日期的字符串(使用strtime()),并以周、月、日、年的形式打印它(使用put_time())。以下是我目前掌握的情况: #include <iostream> #include <sstream> #include <ctime> #include <iomanip> using namespace std; int main() { struct tm tm; s
strtime()
),并以周、月、日、年的形式打印它(使用put_time()
)。以下是我目前掌握的情况:
#include <iostream>
#include <sstream>
#include <ctime>
#include <iomanip>
using namespace std;
int main() {
struct tm tm;
string s("20131224");
if (strptime(s.c_str(), "%Y%m%e", &tm)) {
cout << put_time(&tm, "%A, %B %e, %Y") << endl;
}
}
#包括
#包括
#包括
#包括
使用名称空间std;
int main(){
struct-tm;
字符串s(“20131224”);
if(strtime(s.c_str(),%Y%m%e,&tm)){
cout试试这个(用Mac编译)
#包括
使用名称空间std;
int main(int argc,const char*argv[]{
常量字符串日[]={“太阳”、“星期一”、“星期二”,
“星期三”、“星期四”、“星期五”、“星期六”};
时间与时间;
tm*时间信息;
时间(&rawtime);
timeinfo=localtime(&rawtime);
int weekday=timeinfo->tm_wday;
cout试试这个(用Mac编译)
#包括
使用名称空间std;
int main(int argc,const char*argv[]{
常量字符串日[]={“太阳”、“星期一”、“星期二”,
“星期三”、“星期四”、“星期五”、“星期六”};
时间与时间;
tm*时间信息;
时间(&rawtime);
timeinfo=localtime(&rawtime);
int weekday=timeinfo->tm_wday;
cout这里有一种不使用C API的方法,而是使用C++11/14
工具和这个
上面的date::sys\u days
只不过是std::chrono::system\u clock::time\u point
的typedef
,但精度为days
,而不是平台提供的任何东西(微秒、纳秒,无论什么)。这意味着您可以轻松地向它添加其他持续时间,例如std::chrono::小时、分钟、秒、毫秒等
cout << date::format("%A, %B %e, %Y %H:%M", tp + 2h + 35min ) << endl;
Tuesday, December 24, 2013 02:35
cout这里有一种不使用C API,而是使用C++11/14
工具的方法
上面的date::sys\u days
只不过是std::chrono::system\u clock::time\u point
的typedef
,但精度为days
,而不是平台提供的任何东西(微秒、纳秒,无论什么)。这意味着您可以轻松地向它添加其他持续时间,例如std::chrono::小时、分钟、秒、毫秒等
cout << date::format("%A, %B %e, %Y %H:%M", tp + 2h + 35min ) << endl;
Tuesday, December 24, 2013 02:35
cout tm结构中的缺失字段可能会根据使用情况进行填充,没有要求填充缺失字段任何人都不会想到它会这么简单。我唯一要做的另一件事是添加struct tm={0};
(将所有字段初始化为零)和tm.tm_isdst=-1;
(强制DST查找以防止错误)。谢谢!tm结构中缺少的字段可能会根据使用情况进行填充,不需要填充缺少的字段。我从来没有想到这会这么简单。我唯一要做的另一件事是添加struct tm={0};
(将所有字段初始化为零)和tm.tm_isdst=-1;
(强制DST查找以防止错误)。谢谢!
Tuesday, December 24, 2013
cout << date::format("%A, %B %e, %Y %H:%M", tp + 2h + 35min ) << endl;
Tuesday, December 24, 2013 02:35