簡體   English   中英

解析yyyy-MM-dd HH:mm:ss日期時間字符串?

[英]Parsing yyyy-MM-dd HH:mm:ss date time string?

我有一個來自mysql的日期時間。 我需要提取每個部分:

int year;
int month;
int day;
int hour;
int min;
int sec;

例:

2014-06-10 20:05:57

有沒有比通過stringstream為每個組件運行它更簡單的方法? (請不要使用boost或c ++ 11解決方案)。

謝謝

sscanf()可能是最直接的選擇。 它是一個C庫函數,所以純粹主義者可能不贊成它。

這是一個例子:

int year;
int month;
int day;
int hour;
int min;
int sec;

const char * str = "2014-06-10 20:05:57";

if (sscanf(str, "%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &min, &sec) == 6)
{
    // sscanf() returns the number of elements scanned, so 6 means the string had all 6 elements.
    // Else it was probably malformed.
}

這是一個現場測試

另一個不錯的解決方案也是使用C ++ 11正則表達式 ,這將使字符串更健壯的解析。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM