📅  最后修改于: 2023-12-03 14:42:46.655000             🧑  作者: Mango
在Java中,DateFormat类提供了parse()方法用于将日期格式的字符串转换为Date对象。
public Date parse(String source) throws ParseException
或者
public Date parse(String source, ParsePosition pos)
其中,source是要解析的日期格式字符串,而pos则是指定从source字符串的哪个位置开始解析。
解析成功后,该方法将返回一个对应于source字符串的Date对象;如果解析失败,则抛出一个ParseException异常。
下面是使用DateFormat类的parse()方法的一个示例代码:
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateFormatParseExample {
public static void main(String[] args) {
String dateString = "2020-05-15";
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date = dateFormat.parse(dateString);
System.out.println("Date: " + date);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
这个例子中,我们先定义了一个日期格式字符串dateString和一个DateFormat对象dateFormat。然后在try-catch块中,我们将dateString字符串解析为一个Date对象,并将其输出到控制台。
除了上面这种用法之外,还可以使用第二个参数ParsePosition来指示解析的起始位置。这个参数是一个ParsePosition对象,它指定了在source字符串的哪个位置开始解析。
例如,下面是一个使用ParsePosition参数的示例代码:
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.text.ParsePosition;
import java.util.Date;
public class DateFormatParsePositionExample {
public static void main(String[] args) {
String dateString = "2020-05-15T19:00:00Z";
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
ParsePosition position = new ParsePosition(0);
try {
Date date = dateFormat.parse(dateString, position);
System.out.println("Date: " + date);
System.out.println("Parsed chars: " + position.getIndex());
} catch (ParseException e) {
e.printStackTrace();
}
}
}
这个例子中,我们使用了一个包含时区信息的日期时间字符串dateString,并使用了ParsePosition对象position来指定解析起始位置。解析成功后,我们输出了解析得到的Date对象和解析结束的位置。