Extracting dates from text in Java

后端 未结 5 1839
旧时难觅i
旧时难觅i 2021-01-13 17:20

Is it possible to extract dates from a string in Java?

I have 500+ string with different data. In them, there can be:
\"... period from 08.23.2011 - 09.05.2011..

5条回答
  •  北荒
    北荒 (楼主)
    2021-01-13 18:13

    A date pattern recognition algorithm to not only identify date pattern but also fetches probable date in Java date format. This algorithm is very fast and lightweight. The processing time is linear and all dates are identified in a single pass. Algorithm resolves date using tree traverse mechanism. Tree data structures are custom created to build supported date, time and month patterns.

    The algorithm also acknowledges multiple space characters in between Date literals. E.g. DD DD DD and DD DD DD are considered as valid dates.

    Following date-patterns are considered as valid and are identifiable using this algorithm.

    dd MM(MM) yy(yy) yy(yy) MM(MM) dd MM(MM) dd yy(yy)

    Where M is month literal is alphabet format like Jan or January

    Allowed delimiters between dates are '/', '\', ' ', ',', '|', '-', ' '

    It also recognizes trailing time pattern in following format hh(24):mm:ss.SSS am / pm hh(24):mm:ss am / pm hh(24):mm:ss am / pm

    Resolution time is linear, no pattern matching or brute force is used. This algorithm is based on tree traversal and returns back, the list of date with following three components - date string identified in the text - converted & formatted date string - SimpleDateFormat

    Using date string and the format string, users are free to convert the string into objects based on their requirements.

    The algorithm library is available at maven central.

    
        net.rationalminds
        DateParser
        0.3.0
    
    

    The sample code to use this is below.

     import java.util.List;  
     import net.rationalminds.LocalDateModel;  
     import net.rationalminds.Parser;  
     public class Test {  
       public static void main(String[] args) throws Exception {  
            Parser parser=new Parser();  
            List dates=parser.parse("Identified date :'2015-January-10 18:00:01.704', converted");  
            System.out.println(dates);  
       }  
     }  
    

    Output: [LocalDateModel{originalText=2015-january-10 18:00:01.704, dateTimeString=2015-1-10 18:00:01.704, conDateFormat=yyyy-MM-dd HH:mm:ss.SSS, start=18, end=46}]

    Detailed blog at http://coffeefromme.blogspot.com/2015/10/how-to-extract-date-object-from-given.html

    The complete source is available on GitHub at https://github.com/vbhavsingh/DateParser

提交回复
热议问题