如何使用 boost 日期方面来解析可能没有前导零的字符串?

Wil*_*mKF 5 c++ parsing boost date normalization

我想使用boost::date_facetC++03 中的几种变体来规范化某些字符串输入,这些输入可以具有各种不同的美国样式格式,例如:

  • 2012 年 2 月 4 日
  • 2012 年 2 月 4 日
  • 2012 年 2 月 4 日
  • 2012 年 2 月 4 日
  • 2012 年 2 月 4 日
  • 2012 年 2 月 4 日
  • 2012年2月4日
  • 2012年2月4日
  • 2012年2月4日
  • 2012年2月4日

我遇到的问题是如何创建一个date_facet不需要月份或日期前导零的月份或日期。我在 Boost 文档中看到这些标志的条目:

%d   - Day of the month as decimal 01 to 31
%e # - Like %d, but a leading zero is replaced by a space
%m   - Month name as a decimal 01 to 12
Run Code Online (Sandbox Code Playgroud)

因此,我不知道如何创建一个月份没有前导零的分面,也没有创建一个日期没有前导零的分面(而不是额外的空格)。

我怎样才能用Boost做到这一点?