C++ 将字符串转换成date类型的数据
2014-04-11 11:26
435 查看
#include <time.h> /* time_t, struct tm, time, localtime, strftime */ #include <string> #include <iostream> #include <vector> char* asctime(const struct tm *timeptr){ static const char mon_name[][4] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; static char result[13]; sprintf(result, "%.3s%3d %d\n", mon_name[timeptr->tm_mon], timeptr->tm_mday, 1900 + timeptr->tm_year); return result; } //change string to int int parse_int(const char* str) { int value = atoi(str); return value; } struct tm* stringToDate(const std::string dateString, const std::string splitstr){ std::string datestr = dateString; std::vector<int> yymmdd(3,0); std::size_t frist = datestr.find(splitstr); std::size_t last = datestr.find_last_of(splitstr); /* std::cout <<"year:" << datestr.substr(0, frist) << std::endl; std::cout <<"month:" << datestr.substr(frist + 1, last - frist - 1) << std::endl; std::cout <<"day:"<< datestr.substr(last + 1, datestr.length()) << std::endl; */ time_t rawtime; struct tm * timeinfo; time (&rawtime); timeinfo = localtime (&rawtime); //将上面取得的数转换成int型数据后 存入vector yymmdd中 yymmdd[0] = parse_int(datestr.substr(0, frist).c_str()); yymmdd[1] = parse_int(datestr.substr(frist + 1, last - frist - 1).c_str()); yymmdd[2] = parse_int(datestr.substr(last + 1, datestr.length()).c_str()); timeinfo->tm_mday = yymmdd[2]; timeinfo->tm_mon = yymmdd[1] - 1; timeinfo->tm_year = yymmdd[0] -1900; return timeinfo; } int main (){ std::string mystr = "2009-08-15"; printf ("You input date is: %s", asctime(stringToDate(mystr,"-"))); return 0; }
相关文章推荐
- [Tip: _itow]数值和字符串相互转换(C++ 数据类型转换技巧)
- 数值和字符串相互转换(C++ 数据类型转换技巧)
- C++数据类型转换之一字符串类型间的转换
- C++中sprintf实现将一个基本数据类型的数组转换成字符串
- 网络通信中,DELPHI的string类型数据转换为C++字符串发送的一个陷阱
- Java CST格式字符串转换成Date类型的数据
- beanutils工具类将字符串转换成Date(java.util.Date)数据类型的方法
- Oracle 字符串转换TIMESTAMP类型或Date类型
- C/C++数据类型的转换之终极无惑
- 【C++数据类型】C++中的类型转换(一)
- Windows,C++中各种数据类型的转换---很有用!
- 【C++注意事项】1 数据类型及类型转换
- Java中字符串和Date类型相互转换
- Swift3字符串转换为其他数据类型
- C/C++中int/long/float/double数值类型与字符串互相转换[总结]
- 在java中怎样将Date类型转换成字符串类型
- C++ 数据类型的转换
- 从 varchar 数据类型到 datetime 数据类型的转换产生一个超出范围的值/Conversion failed when converting date and/or time from c
- 【java基础】在Java中实现基本数据类型与字符、字符串之间的转换
- 在java中实现日期类型和字符串类型的转换_所有(Date String Timestamp Datetime)