解决 java.text.ParseException: Unparseable date

简介: 解决 java.text.ParseException: Unparseable date

想根据指定字符串日期,获取是第几周,结果报错了

java.text.ParseException: Unparseable date: "2023-03-07"
  at java.text.DateFormat.parse(DateFormat.java:366)
  at com.hidata.hidbm.Test11.getWeeksInMonthOfDate(Test11.java:27)
  at com.hidata.hidbm.Test11.main(Test11.java:14)
2023年3月第2周
Process finished with exit code 0

经过查找,发现是因为SimpleDateFormat里面忘记加 “yyyy-MM-dd”,

原来的

SimpleDateFormat df=new SimpleDateFormat();

改过后

SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");

最终代码

package com.hidata.hidbm;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
/**
 * @Description :
 * @Date: 2023-03-07 10:05
 */
public class Demo{
    public static void main(String[] args) {
        System.out.println(getWeeks("2023-03-07"));
    }
    /**
     * 获取指定日期-XXXX年X月第X周
     */
    public static String getWeeks(String dateStr){
        SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
        Calendar calendar = Calendar.getInstance();
        try {
            calendar.setTime(df.parse(dateStr));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        //设置每周第一天为周一 默认每周第一天为周日
        calendar.setFirstDayOfWeek(Calendar.MONDAY);
        //获取当前日期所在周周日
        calendar.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY);
        return String.valueOf(calendar.get(Calendar.YEAR)).concat("年").
                concat(String.valueOf(calendar.get(Calendar.MONTH)+1)).concat("月第").
                concat(String.valueOf(calendar.get(Calendar.WEEK_OF_MONTH))).concat("周");
    }
}


相关文章
|
1月前
|
Java 关系型数据库 MySQL
37、一篇文章学习 Java 中的日期相关类(Date 和 Calendar),非常常用
37、一篇文章学习 Java 中的日期相关类(Date 和 Calendar),非常常用
27 0
|
3月前
|
Java
关于java获取时间 new Date(),显示“上午、下午”
关于java获取时间 new Date(),显示“上午、下午”
36 0
|
6月前
|
Java p3c
【Java用法】请使用System.currentTimeMillis()代替new Date().getTime()
【Java用法】请使用System.currentTimeMillis()代替new Date().getTime()
52 0
|
7月前
|
Java API
Java之Date类以及SimpleDateFormal类的概述
Java之Date类以及SimpleDateFormal类的概述
46 0
|
3月前
|
Java
java将Date类型转化为固定格式yyyyMMdd字符串
java将Date类型转化为固定格式yyyyMMdd字符串
41 0
|
8月前
|
Java
Java String、Date、Calendar、LocalDate和LocalDateTime互转
Java String、Date、Calendar、LocalDate和LocalDateTime互转
|
5月前
|
Java
java实体类接收Date时间
java实体类接收Date时间
|
7月前
|
存储 数据库
Gson (自定义转化器) 日期转换异常:Caused by: java.text.ParseException: Failed to parse date
Gson (自定义转化器) 日期转换异常:Caused by: java.text.ParseException: Failed to parse date
81 0
|
7月前
|
Java
java关于时间比较|String转Date|Date转String|指定时间加上指定天数后的日期|当时时间加上指定天数后的日期等的方法
java关于时间比较|String转Date|Date转String|指定时间加上指定天数后的日期|当时时间加上指定天数后的日期等的方法
java关于时间比较|String转Date|Date转String|指定时间加上指定天数后的日期|当时时间加上指定天数后的日期等的方法
|
7月前
|
Java API
Java常用API(三)Date,DateFormat和Calendar
Java常用API(三)Date,DateFormat和Calendar
44 0