简单粗暴的两种方法

1、自己写一个方法获取日期 取余

 /*** 获取当前日期是星期几<br>* * @param dt* @return 当前日期是星期几*/public static String getWeekOfDate(Date dt) {String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};Calendar cal = Calendar.getInstance();cal.setTime(dt);int w = cal.get(Calendar.DAY_OF_WEEK) - 1;if (w < 0)w = 0;return weekDays[w];}

2、对于创建SimpleDateFormat传入的参数:EEEE代表星期,如“星期五”;MMMM代表中文月份,如“十一月”;MM代表月份,如“10”;
yyyy代表年份,如“2017”;dd代表天,如“28”

注意  注意  注意  :  区分大小写!!!!

  Date date=new Date();SimpleDateFormat dateFm = new SimpleDateFormat("EEEE");dateFm.format(date);

在开发中经常会使用到一些日期方面的操作,下面例子展示几个常用的操作。

1、取得指定日期是星期几
取得指定日期是星期几可以采用下面两种方式取得日期是星期几:

a、使用Calendar类

//根据日期取得星期几public static String getWeek(Date date){String[] weeks = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};Calendar cal = Calendar.getInstance();cal.setTime(date);int week_index = cal.get(Calendar.DAY_OF_WEEK) - 1;if(week_index<0){week_index = 0;} return weeks[week_index];}

b、使用SimpleDateFormat类

//根据日期取得星期几public static String getWeek(Date date){ SimpleDateFormat sdf = new SimpleDateFormat("EEEE");String week = sdf.format(date);return week;}

注:格式化字符串存在区分大小写
对于创建SimpleDateFormat传入的参数:EEEE代表星期,如“星期四”;MMMM代表中文月份,如“十一月”;MM代表月份,如“11”;
yyyy代表年份,如“2010”;dd代表天,如“25”

2、取得日期是某年的第几周
根据日期入得日期是某年的第几周。

//取得日期是某年的第几周public static int getWeekOfYear(Date date){Calendar cal = Calendar.getInstance();cal.setTime(date);int week_of_year = cal.get(Calendar.WEEK_OF_YEAR);return week_of_year;}

3、得到某年的某个月有多少天
已知年份和月份,取得该月有多少天。

//取得某个月有多少天public static int getDaysOfMonth(int year,int month){Calendar cal = Calendar.getInstance();cal.set(Calendar.YEAR, year);cal.set(Calendar.MONTH, month-1);int days_of_month = cal.getActualMaximum(Calendar.DAY_OF_MONTH);return days_of_month;}

4、取得两个日期之间的相差多少天
已知两个日期,计算它们之间相差多少天。

// 取得两个日期之间的相差多少天public static long getDaysBetween(Date date0, Date date1) {long daysBetween = (date0.getTime() - date1.getTime() + 1000000) / 86400000;// 86400000=3600*24*1000  用立即数,减少乘法计算的开销return daysBetween;}

5、完整的测试代码

package org.ml.test;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;public class CalendarDemo {public static void main(String[] args) {String strDate = "2013-03-08";// 定义日期字符串SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");// 定义日期格式Date date = null;try {date = format.parse(strDate);// 将字符串转换为日期} catch (ParseException e) {System.out.println("输入的日期格式不合理!");}System.out.println(strDate + "是:" + getWeek(date));System.out.println(strDate + "是一年的第:" + getWeekOfYear(date) + "周");System.out.println(strDate + "是一年的" + (date.getMonth() + 1) + "月有:"+ getDaysOfMonth(date.getYear(), date.getMonth() + 1) + "天");System.out.println(strDate + "距离" + (format.format(new Date())) + "还有"+ getDaysBetween(date, new Date()) + "天");}// 根据日期取得星期几public static String getWeek(Date date) {// String[] weeks = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};// Calendar cal = Calendar.getInstance();// cal.setTime(date);// int week_index = cal.get(Calendar.DAY_OF_WEEK) - 1;// if(week_index<0){// week_index = 0;// }// return weeks[week_index];SimpleDateFormat sdf = new SimpleDateFormat("EEEE");String week = sdf.format(date);return week;}// 取得日期是某年的第几周public static int getWeekOfYear(Date date) {Calendar cal = Calendar.getInstance();cal.setTime(date);int week_of_year = cal.get(Calendar.WEEK_OF_YEAR);return week_of_year;}// 取得某个月有多少天public static int getDaysOfMonth(int year, int month) {Calendar cal = Calendar.getInstance();cal.set(Calendar.YEAR, year);cal.set(Calendar.MONTH, month-1);int days_of_month = cal.getActualMaximum(Calendar.DAY_OF_MONTH);return days_of_month;}// 取得两个日期之间的相差多少天public static long getDaysBetween(Date date0, Date date1) {long daysBetween = (date0.getTime() - date1.getTime() + 1000000) / 86400000;// 86400000=3600*24*1000  用立即数,减少乘法计算的开销return daysBetween;}}

6、测试结果

7、引出的问题
看下面的代码:

public static void main(String[] args) throws Exception{String strDate = "999-999-999";// 定义日期字符串SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");// 定义日期格式Date date = null;
try {date = format.parse(strDate);// 将字符串转换为日期
} catch (ParseException e) {System.out.println("日期格式有误,请给出正确的日期格式");return;
}System.out.println(format.format(date));
}

Java中使用yyyy-MM-dd日期格式进行转换,转换字符串为999-999-999时,没有出现异常,反倒是执行通过了。

运行结果:1084-11-23

解决办法如下:

在date = format.parse(strDate)前面加上format.setLenient(false)就行了。意思是【指定日期/时间解析是否不严格。进行不严格解析时,解析程序可以使用启发式的方法来解释与此对象的格式不精确匹配的输入。进行严格解析时,输入必须匹配此对象的格式。 】
---------------------

java获取当天星期几相关推荐

  1. Java获取当天0时0分0秒时间的方法

    Java获取当天0点时间 Date date = new Date(86400000L * (int)(System.currentTimeMillis() / 86400000.0)-1000*60 ...

  2. java获取当天的最后时间

    java获取当天的最后时间 String endTime = DateFormatUtils.format(new Date(), "yyyy-MM-dd 23:59:59")

  3. Java获取当天的起始和结束时间

    Java获取当天的起始和结束时间 import lombok.extern.slf4j.Slf4j;import java.text.SimpleDateFormat; import java.uti ...

  4. Java获取当天(今日)零点时间(00:00:00)0时0分0秒的方法

    如果想通过Java获取当天的0点时间,有两种方式:一种是通过Calendar:另外一种是通过SimpleDataFormat.下面分别介绍. 1.Calendar 通过Calendar把时分秒字段清空 ...

  5. java获取当前日期 星期几_java获取当前日期是星期几的方法

    java获取当前日期是星期几的方法 发布时间:2020-06-29 11:16:15 来源:亿速云 阅读:133 作者:Leah 本篇文章为大家展示了java获取当前日期是星期几的方法,代码简明扼要并 ...

  6. Java获取当天剩余时间的几种方法

    三种获取当天剩余时间的简洁方式,分别使用DateUtils.DateTime和LocalDateTime,有时间再详解这三个类的更多方法.下面是编写的代码,有更多好的方式,欢迎留言. import o ...

  7. java获取当天开始,结束时间

    //获取当天结束时间 public static Date getEndTime(Date date) {Calendar dateEnd = Calendar.getInstance();dateE ...

  8. java 获取当天0时0分0秒和 23时23分59秒 的时间

    /*** Purpose:获取当天0时0分0秒的时间* @author Hermanwang* @return* @return Date*/public static String todayFir ...

  9. Java获取当天零点零分时间的方法分享

    参阅资料: java中如何获取当月1号零时零分的时间呢? 获取指定时间对应的时间戳,是我们日常开发中经常需使用到的方法,那么如何才能获取指定日期时间对应的时间戳呢?下文笔者将一一道来,如下所示: 实现 ...

最新文章

  1. 发展受阻第一至四季/全集Arrested迅雷下载
  2. 蓝牙协议分析_BLE地址类型
  3. VTK:PolyData之DetermineArrayDataTypes
  4. 离京2小时,快手百亿入云,一切为了「看见」
  5. RobotFramework中实现接口上传文件
  6. 订阅服务器无法显示,订阅疑难解答
  7. OSChina 周一乱弹 ——为什么非洲人短跑长跑都强
  8. 检测分割算法改进(篇二) Residual Feature Augmentation(RFA模块)及Adaptive Spatial Fusion(ASF模块)
  9. 普渡大学计算机硕士申请条件,普渡大学计算机科学硕士录取条件有哪些?需要这些申请材料...
  10. 30多个投资理财工具,总有一款适合你
  11. python选题背景_选题背景及课题研究的目的与意义范例
  12. 不可能得到的最短骰子序列
  13. 网络七层模型与物联网三层模型
  14. windows xp下如何安装SQL server2000企业版
  15. 弹窗代码大全window.open
  16. MiniJavaVM——一个Java虚拟机的设计和实现
  17. Windows7 库 文件夹图标修改(转载)
  18. 使用Jedis连接Redis失败的几个注意点
  19. 论文降重 | paperask自建库功能
  20. 自学实前后端践项目3 Spring Cloud微服务 2

热门文章

  1. (UE4)UI小功能之按钮逐次显示
  2. 小麦苗的微信公众号开通啦,欢迎大家扫码关注
  3. Android 仿今日头条、网易新闻的频道管理
  4. 怎样在VS2005中添加Flash控件
  5. XTUOJ-1163-ASCII
  6. Linux系统各发行版镜像下载
  7. CartoonShader
  8. 详细介绍CoinList 2022 年夏季种子项目, web3概念最亮眼!
  9. 14个python就业前景_python普通人学有什么用 就业前景和工资待遇怎么样
  10. 大厂“P8/P9”必读《成为思维高手》pdf 电子书下载