簡體   English   中英

如何從格式化的字符串中獲取boost :: posix_time :: ptime

[英]how to get boost::posix_time::ptime from formatted string

我有一個像2012-03-28T08:00:00這樣的格式化字符串。 我想得到年,月(字符串格式),日期,小時,分鍾,秒和日(字符串格式)。 任何人都可以建議我最簡單的方法來提升。

謝謝

如果現有的from_string()方法不適合您的需要,那么您可以使用時間輸入方面,該方面允許您自定義解析字符串的格式。

在您的情況下,您可以使用ISO擴展格式字符串,以便您可以使用以下代碼來解析您的字符串:

    boost::posix_time::time_input_facet *tif = new boost::posix_time::time_input_facet;
    tif->set_iso_extended_format();
    std::istringstream iss("2012-03-28T08:00:00");
    iss.imbue(std::locale(std::locale::classic(), tif));
    iss >> abs_time;
    std::cout << abs_time << std::endl;

不使用方面;

ptime dateTime = boost::date_time::parse_delimited_time<ptime>(string, 'T');

from*_string函數的兩個函數對轉換的格式有限制。

  • 不接受'T': time_from_string(s)
  • 不接受' - ': from_iso_string(s)

在加速中往返ISO 8601日期/時間;

std::string date = to_iso_extended_string(dateTime);

暫無
暫無

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

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