我需要将字符串格式的日期转换为实际日期,以检查它是否是星期五



我有一个字符串格式的日期,如下所示"2016-07-08"(2016年7月8日)。我需要检查今天是不是星期五,原因是日期会改变,我总是需要检查提供的日期是不是星期五。我使用以下代码(假设startDate是一个包含我的日期的字符串):

DateFormat formatter = new SimpleDateFormat("YYYY-MM-dd"); 
java.util.Date date = formatter.parse(startDate); 
cal.setTime(date); 
if(cal.get(Calendar.DAY_OF_WEEK) == Calendar.FRIDAY){  
  System.out.println("IT'S FRIDAY!!!!");    
}

我尝试输出存储在cal中的值,它返回Mon Jan 04 00:00:00 CET 2016。

大写Y表示周-年。您可能指的是yyyy-MM-dd(年份用小写的y表示)。

javadoc列出所有有效的模式

应该是yyyy,而不是YYYY

使用这个。

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

您的问题在于用于解析年份的模式。请用这个代替用YYYY-MM-dd创建SimpleDateFormat

new SimpleDateFormat("yyyy-MM-dd")

您应该使用"yyyy-MM-dd"作为小写'y'的日期格式。

其他答案是正确的。但问答使用过时的类。

<标题> java.time h1> java。time框架取代了与早期Java版本捆绑在一起的麻烦的旧日期时间类。
Boolean isFriday = LocalDate.parse( "2016-07-08" ).getDayOfWeek().equals( DayOfWeek.FRIDAY );

LocalDate类表示一个只有日期的值,没有时间和时区。

DayOfWeek枚举有7个实例来表示和测试星期。

您输入的字符串是ISO 8601格式。java。time类在解析和生成String表示时默认使用这些标准格式。所以不需要定义格式模式

相关内容

  • 没有找到相关文章

最新更新