写一个parseDateString2Date(String dateStringValue),传入一个字符串时间值然后返回一个long值时间戳, 这个字符串可能存在两种情况,值内容格式分别为:2023-05-13 11:11:11 或者 2023-05-13,即只带年月日或者年月日和时间(空格分隔)两种。 (如果给入的字符串为空返回0)
时间: 2023-06-18 07:07:53 浏览: 64
以下是 Java 代码实现:
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateParser {
public static long parseDateString2Date(String dateStringValue){
if(dateStringValue == null || dateStringValue.isEmpty()){
return 0;
}
SimpleDateFormat dateFormat = new SimpleDateFormat();
if(dateStringValue.length() == 10){
dateFormat.applyPattern("yyyy-MM-dd");
} else if (dateStringValue.length() == 19){
dateFormat.applyPattern("yyyy-MM-dd HH:mm:ss");
} else {
throw new IllegalArgumentException("Invalid date string format!");
}
try {
Date date = dateFormat.parse(dateStringValue);
return date.getTime();
} catch (ParseException e) {
throw new IllegalArgumentException("Invalid date string format or value!");
}
}
public static void main(String[] args) {
String dateString1 = "2023-05-13 11:11:11";
System.out.println(parseDateString2Date(dateString1));
String dateString2 = "2023-05-13";
System.out.println(parseDateString2Date(dateString2));
String dateString3 = "2023/05/13 11:11:11";
System.out.println(parseDateString2Date(dateString3)); // 抛出 IllegalArgumentException 异常
}
}
```
解析过程比较简单,根据字符串长度判断时间格式,然后使用 SimpleDateFormat 类的 parse 方法解析字符串为 Date 类型,最后使用 Date 类的 getTime 方法获取时间戳。如果解析失败则抛出异常。
阅读全文