我收到了一串字符串,告訴我有關事件,我需要將所有字符串轉換爲開始DateTime
和結束DateTime
。起初,我嘗試通過字符串逐個字符,但當字符串中有多個日期時,它變得太複雜了。我也嘗試過分析許多日期格式,但是當日期和月份先來時,那麼時間,它不起作用。我正在使用C#,並且也嘗試使用正則表達式搜索字符串,但是我遇到了麻煩,因爲我無法將日期匹配到正確的時間。如何獲取隨機字符串中的日期時間?
這裏是我給出的字符串的幾個例子:
九月12-13,2015,週六10:30 a.m.-6p.m.週日上午10時中午
應該有2個日期:
StartDate: 2015/09/12 10:30 EndDate: 2015/09/12 18:00
StartDate: 2015/09/13 10:00 EndDate: 2015/09/13 12:00
六月3日至9月9日,2015年,週二,週四下午6-7 ,週日10-11時三十分
多個日期週二/週四/週日的日期範圍:
StartDate: 2015/06/04 18:00 EndDate: 2015/06/04 19:00
StartDate: 2015/06/07 10:00 EndDate: 2015/06/07 11:00
StartDate: 2015/06/09 18:00 EndDate: 2015/06/09 19:00
StartDate: 2015/06/11 18:00 EndDate: 2015/06/11 19:00
...繼續以下相同的模式
謝謝。
似乎是令牌的工作......第一次嘗試推廣可能的格式轉換成規則。 –
如果其中一個標準日期 - 時間分析模塊適合您,請嘗試。例如,Perl有一些:http://search.cpan.org/~gbarr/TimeDate-2.30/lib/Date/Parse.pm如果不是,另一個選擇是設計一個小的DSL(領域特定語言)日期格式,並使用像ANTLR或Flex/Bison這樣的解析器生成器來生成代碼。 –
當可能的日期格式如此多樣時,可能的日期格式會是什麼?有些字符串以時間開始,以月份結束,等等。 – Scott