Java Joda时间多日期格式代码优化

时间:2016-08-03 09:08:28

标签: java datetime exception optimization jodatime

以下是根据格式字符串将字符串转换为Joda datetime对象的代码。

Set MainDoc = Application.Documents.Open(strFolder & "BaseDoc.doc")
strFile = Dir$(strFolder & "*.doc") ' can change to .docx
'Loop through all .doc files in that path
Do Until strFile = ""
    Set sourcedoc = Application.Documents.Open(strFolder & "*.doc")
    Application.Selection.WholeStory
    Application.Selection.Copy
    Application.ActiveWindow.Close savechanges:=wdDoNotSaveChanges
    MainDoc.Activate

    Application.Selection.PasteAndFormat (wdFormatOriginalFormattig)
    MainDoc.InsertBreak Type:=wdSectionBreakNextPage
Loop

这段代码为我提供了理想的结果,但是使用异常作为控制流并不是一个好的设计。请优化代码。

1 个答案:

答案 0 :(得分:2)

使用Joda,您可以尝试这样做

import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
import org.joda.time.format.DateTimeFormatterBuilder;
import org.joda.time.format.DateTimeParser;

public class JODATester {

    public static void main(String[] args) {
        DateTimeParser[] parserList = { DateTimeFormat.forPattern("MM/dd/yyyy hh:mm:ss.SSS a").getParser(),
                DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSS").getParser(),
                DateTimeFormat.forPattern("MM-dd-yyyy hh:mm:ss.SSS a").getParser(),
                DateTimeFormat.forPattern("MM dd yyyy hh:mm:ss.SSS a").getParser(),
                DateTimeFormat.forPattern("MM-dd-yyyy hh.mm.ss.SSS a").getParser() };
        DateTimeFormatter formatter = new DateTimeFormatterBuilder().append(null, parserList).toFormatter();

        DateTime date1 = formatter.parseDateTime("2010-01-01 01:01:01.001");
        DateTime date2 = formatter.parseDateTime("08/03/2016 03:01:33.790 PM");

        System.out.println(date2);

        System.out.println(date1);

//      
//       DateTime dt = new DateTime();
//       DateTimeFormatter fmt = DateTimeFormat.forPattern("MM/dd/yyyy hh:mm:ss.SSS a");
//       String str = fmt.print(dt);
//       
//       System.out.println(str);

    }

}