没有分隔符的Java日期解析?

时间:2013-08-13 09:29:12

标签: java

在我的程序中,我正在使用以下分隔符解析字符串日期(frmDateStr)并获取fromDate 我用它来进行进一步的比较。

String frmDateStr = "12/25/2013";
Date fromDate = formatter.parse(frmDateStr);

现在,如果我通过frmDateStr = "12252013" or "122513"(2 digit year),我想得到相同的结果。 但我得到了parse exception.

所以,请告诉我如何获取日期值,而字符串没有分隔符和短年?

提前致谢

佳日

4 个答案:

答案 0 :(得分:2)

使用此代码,它会有所帮助

String dateFormat = "MMddyyyy";
if (dateString.indexOf("/") != -1)
{
    dateFormat = "MM/dd/yyyy";
}
SimpleDateFormat formatter = new SimpleDateFormat(dateFormat);
System.out.print(formatter.parse(dateString));

您的输入为dateString

答案 1 :(得分:1)

正如其他答案所说,你必须定义一个适合你数据的格式化程序。

java.time

Java 8及更高版本与新的java.time框架(Tutorial)捆绑在一起。这些新类取代了旧的java.util.Date/.Calendar& java.text.SimpleDateFormat中。

此外,java.time包含一个类LocalDate,仅代表一个日期,没有时间和时区,就像你在问题中一样。

String input = "12252013";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern( "MMddyyyy" );
LocalDate localDate = LocalDate.parse( input , formatter );

转储到控制台。

System.out.println( "localDate : " + localDate );

跑步时。

  

localDate:2013-12-25

答案 2 :(得分:0)

import java.util.Random;

/**
 * Created by vapa1115 on 9/27/2018.
 */
public class UtmUtil {
    public static String getSourceAddress(String sourceAddressValue) {
       if(sourceAddressValue==null) {
           Random r = new Random();
           sourceAddressValue = r.nextInt(256) + "." + r.nextInt(256) + "." + r.nextInt(256) + "." + r.nextInt(256);
       }else{
           Random r = new Random();
           int ind = sourceAddressValue.lastIndexOf(".");
           String randomValue=r.nextInt(256)+"";
           if(randomValue.length()>3){
               randomValue=randomValue.substring(0,2);
           }
           sourceAddressValue= new StringBuilder(sourceAddressValue).replace(ind, ind+1,"."+randomValue).toString();
        }
        return sourceAddressValue;

    }
    public static void main(String sd[]){
        getSourceAddress("192.168.0");
    }
}

答案 3 :(得分:-1)

创建您自己的SimpleDateFormat实例并使用它从字符串中读取日期:

所有必要的信息都可以在这里找到: http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html