使用如下代码:Calendar c=new Calendar();c.set(2020,10,11);Date d= c.getTime(); 能实现将字符串“2020年10月11日”表示的日期对象吗?如果不能请指出问题所在,写出正确的程序代码。
时间: 2024-02-15 10:03:39 浏览: 20
该代码无法实现将字符串“2020年10月11日”表示的日期对象。因为 Calendar 类中没有无参构造方法,所以需要使用 Calendar.getInstance() 方法获取 Calendar 类的实例。另外,该字符串中包含“年”、“月”、“日”等符号,需要将其去掉并将字符串中的数字分别解析出来后设置到 Calendar 实例中。
以下是一个可以实现将字符串“2020年10月11日”表示的日期对象的代码示例:
```
String str = "2020年10月11日";
DateFormat format = new SimpleDateFormat("yyyy年MM月dd日");
Date date = format.parse(str);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
```
其中,首先使用 SimpleDateFormat 类将字符串解析成日期对象,然后通过 Calendar.getInstance() 方法获取 Calendar 实例,最后调用 Calendar.setTime() 方法将日期对象设置到 Calendar 实例中即可。
相关问题
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = sdf.parse(datestr); Calendar calendar = new GregorianCalendar() calendar.setTime(date) calendar.add(Calendar.MONTH, 0); calendar.set(Calendar.DAY_OF_MONTH, 1); var firstDay = calendar.getTime(); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); var lastday = calendar.getTime()
这段代码的作用是将一个字符串类型的日期转换为该月份的第一天和最后一天的日期。具体来说,它首先将字符串类型的日期解析为 Date 对象,然后将其设置为 GregorianCalendar 对象的时间,接着将该月份的第一天和最后一天的日期分别设置为 Calendar 对象的时间,并将它们转换为 Date 对象。最后,它将这两个 Date 对象分别赋值给 firstDay 和 lastday 变量。
解释一下这段代码: public static Date getDateByYearAndMonth(int year,int month) { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.YEAR, year); calendar.set(Calendar.MONTH, month - 1); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); Date date = calendar.getTime(); return date; }
这段代码是一个公共静态方法,名称为“getDateByYearAndMonth”,它接受两个整数型参数,分别代表年份和月份。该方法使用Java中的Calendar类来创建一个日期对象,它会将年份和月份设置到Calendar对象中。接着,它将时间的小时,分钟,秒钟和毫秒都设置为0,最后通过调用Calendar类的getTime方法将Calendar转成Date对象,并返回该对象。
因此,这个方法可以根据传递的年份和月份来得到一个对应的日期,返回值就是一个Date对象。