java一个星期中有假java安全级别没有中

java编程中有一个时间组件的概念Calendar,不知道各位亲有木有印象呢?新手的话,可能需要了解一下,很多编程过程中,我们会用到时间组件,还会遇到一些诸如时间转化,年月日,时分秒的问题,这些问题,其实只要在开始的时候,进行统一的编写,打包成jar包的话,可能比较好,这在后来是可以省下很多功夫的,为啥呢?大家都知道将功能组件打成jar包,可以到处使用,只要导入即可,而接下里的文章,也是跟java编程中的Calendar时间组件有关的,它将介绍如何来获取星期几的问题,即如何根据系统时间来获取今天或者某一天是星期几,这种也属于功能组件,当然也是划分在时间组件中的,因为用的类也都差不多。正确获取星期几(Calendar.DAY_OF_WEEK)Java代码Calendar&now&=&Calendar.getInstance();&&//一周第一天是否为星期天&&boolean&isFirstSunday&=&(now.getFirstDayOfWeek()&==&Calendar.SUNDAY);&&//获取周几&&int&weekDay&=&now.get(Calendar.DAY_OF_WEEK);&&//若一周第一天为星期天,则-1&&if(isFirstSunday){&&&&&&weekDay&=&weekDay&-&1;&&&&&&if(weekDay&==&0){&&&&&&&&&&weekDay&=&7;&&&&&&}&&}&&//打印周几&&System.out.println(weekDay);&&&&//若当天为日(星期一),则打印输出:1&&//若当天为日(星期五),则打印输出:5&&//若当天为日(星期日),则打印输出:7&&星期日为一周的第一天SUNMONTUEWEDTHUFRISATDAY_OF_WEEK返回值1234567星期一为一周的第一天MONTUEWEDTHUFRISATSUNDAY_OF_WEEK返回值1234567以下参考:1. 在获取月份时,Calendar.MONTH + 1 的原因Java中的月份遵循了罗马历中的规则:当时一年中的月份数量是不固定的,第一个月是JANUARY。而Java中Calendar.MONTH返回的数值其实是当前月距离第一个月有多少个月份的数值,JANUARY在Java中返回“0”,所以我们需要+1。2. 在获取星期几 Calendar.DAY_OF_WEEK – 1 的原因Java中Calendar.DAY_OF_WEEK其实表示:一周中的第几天,所以他会受到&第一天是星期几的影响。有些地区以星期日作为一周的第一天,而有些地区以星期一作为一周的第一天,这2种情况是需要区分的。看下表的返回值星期日为一周的第一天SUNMONTUEWEDTHUFRISATDAY_OF_WEEK返回值1234567星期一为一周的第一天MONTUEWEDTHUFRISATSUNDAY_OF_WEEK返回值1234567所以Calendar.DAY_OF_WEEK需要根据本地化设置的不同而确定是否需要 “-1”Java中设置不同地区的输出可以使用 Locale.setDefault(Locale.地区名) 来实现。System.out.println(calendar.get(Calendar.DAY_OF_WEEK));返回的是周几,而不是一周的第几天可以这样设置,星期第一天是星期几:calendar.setFirstDayOfWeek(Calendar.MONDAY);也可以设置Calendar.SUNDAY设置好了就决定了当前日期的WEEK_OF_YEAR,但并不会改变DAY_OF_WEEK!3. 获取日期时 Calendar.DAY_OF_MONTH 不需要特殊的操作,他直接返回一个月中的第几天通过以上的介绍,是否清楚如何利用Calendar来实现一个时间的星期计算组件呢,对于这类型的组件最好封装起来哦,以便后续使用哈,好啦,今天的Calendar实现星期几计算的介绍就到这里咯。5月21日消息,今年的5月23日是Java第一版正式推出20周年的日子。它的推出伴随和促进了Web的发展,提升了生产力,为公司与消费者之间的互动带来了全新方式。作为一种被广泛采用的编程语言,Java为技术的推广与普及起到了不可忽视的作用。例如,大数据革命就是由Java引发的。对于企业界来说,很多服务器都部署着Java应用程序,许多物联网设备也都是基于Java技术开发。20年前,Java为人们带来前所未有的科技理念:一次编写,到处运行。在此之前,编程语言的种类寥寥无几,而且大多针对固定用途:Fortran用作科学计算,COBOL是针对商业方面,C以及逐渐兴起的C++则用于商业编程。除此之外,还有一些非主流语言。例如,用于国防项目的Ada,在爱好者以及中小企业顾问间流行的Pascal,在学术界流传甚广的Smalltalk以及Lisp,深受系统管理员喜爱的Perl等等。但是,前文所述的3大语言在当时占据着主导地位。疲惫不堪的C语言人们日渐对C语言感到厌烦,其具备2个不利因素:首先,C过于针对底层需求,仅仅执行简单任务就需要大量指令。其次,可移植性差,这意味着针对PC撰写的代码无法便捷地移植到小型设备或大型主机中去运行。当然,如果针对底层应用开发,C的性能相当强大,可以让开发者随心所欲地发挥自己的创造力。然而,针对大型软件项目而言,C会给相关实施人员带来不可想象的痛苦。尽管到了1995年的时候,许多C语言厂商纷纷推出符合1989 ISO标准的工具,但随之而来的众多扩展功能让跨平台移植成为不可能的任务。C语言的种种弊端最终催生出新一代编程语言。光是在1995年,就出现了Ruby、PHP、Java以及JavaScript。由于Java拥有强大的可移植性以及丰富的功能库,其迅速变得流行起来。&一次编写,到处运行&的口号在严格意义上无法实现,但较以前的语言已经大幅提高。其后,IBM对Java的认可奠定了其在商业编程领域的重要地位。一旦一门语言成为主流,其生命周期会变得格外长久。Java引入的虚拟机技术是其最为独特的理念之一,该技术让可移植性植根于项目的最初阶段。然而,高度可移植性带来的弊端就是启动和运行速度缓慢。持续完善今天,Java的运行效率已经非常之高,同时还具备巨大的吞吐能力,这一点已经在各种大数据项目上得到了证实。现在的Java已经变得可以胜任各种任务。随着Java 8的出现,该语言已经具备了各种流行的编程理念,代码更短小、更可靠且表达能力更强。Java的历史为我们所熟知。然而,我们很容易忽视掉一点,那就是:Java的成功来自持续大规模的技术投入,没有多少语言可以获得厂商的青睐从而进行各种完善。除了Java之外,恐怕只有微软的C#受到这种待遇。20岁的Java已经步入成熟期,让我们期待它的未来变得更加辉煌。
24小时报不停
网宿科技两名副总裁辞职
中通计划今年通过香港IPO,筹集10亿美元资金
印度4美元手机遭疯抢:订购网站已崩溃
声音社交App“陪我”融资6000万元,信中利领投
“回天汽服”拟出资750万元收购“e养车”
印度24元手机商承认山寨苹果技术,技术总监说反正对方无专利
大学制造出可弯曲使用的手机,玩《愤怒的小鸟》能策算攻击弹道
习近平坐上《新闻联播》主播台体验新闻播报
视觉中国斥资1亿美元入股全球在线图片巨头Getty Images
远景同程获5000万A轮投资,将依托大数据继续扩展线下服务增强粘性
七桥基因公司获A轮4500万美元融资,数据平台加快癌症研究步伐
“快看影视”App因侵权被腾讯告了,法院判处其赔偿3.5万元
习近平到新华社调研,仔细察看了旧时的发报机、手摇马达和现在先进的海事卫星、无人机
高通与联想达成专利授权协议,覆盖3G和4G手机
习近平主席通过微博向全国人民发元宵节祝福,还是语音哒!
Android和Windwos手机也能参加苹果iPhone以旧换新计划了
微博公测新功能:可以看到谁取消了对自己的关注
网售商品被指直销和传销,中粮子公司发声:是新营销
FBI被苹果逼急了,欲用死亡嫌犯指纹解锁iPhone
Twitter首次披露海外数据,在日本的用户量多于对手Facebook
雅虎高管称移动2.0将于今年年底出现
Apple Pay上线第一天每分钟绑卡达8万张,能否打败微信支付宝仍是问号
国产手机每台最多仅赚百元,91%利润进苹果口袋
彭博社证实:iPhone 5se将搭载A9处理器
Gartner:去年第四季度iPhone销量首次下滑
乐视体育或以27亿元签下中超2年独家版权
Facebook Messenger未来几个月将推广告服务
传戴尔670亿美元收购EMC将获欧盟批准
IBM斥资26亿美元收购医疗数据分析公司Truven
高通与联想签署最新专利授权协议
美团点评Pre-IPO商业计划书曝光?美团予以否认
酷6传媒再次接到纳斯达克摘牌警告
Google宣布收购企业级聊天工具Pie
苹果发布新版iOS 9.2.1修复iPhone“变砖”问题
Uber CEO:在华每年烧钱逾10亿美元,不希望世界依靠补贴方式存在
郭台铭:富士康55亿美元接近收购夏普
传中国首家互联网保险商众安保险计划上市
Facebook开放新闻平台,所有媒体或博客均可发布
2015年中国并购市场交易数量规模创新高,并购退出回报5.92倍
贾跃亭吐槽Apple Pay应用场景有限,没有增值,顺便推广了自家乐视金融
亚马逊新业务入华:每月12元,可读4万本电子书
余承东微博暗示MateBook存在,华为进军PC行业
火岩科技18日香港创业板上市,预计今年将开发3款游戏
紧随Apple Pay,三星支付24日将公开测试
部分用户Apple Pay绑卡不顺利,苹果:因系统刚上线申请人太多导致“卡壳”
张朝阳推进搜狐门户改革,押注智能推荐
印度5美元手机刚推出就摊上事了,外观太像iPhone
贷款买新能源汽车、二手车首付比例有望下调
雅虎宣布关闭旗下7个垂直频道,试图把精力集中在新闻、体育、金融和生活方式4个内容领域
日本最后一刻阻拦鸿海收购夏普,质疑董事有私心
努比亚1.5亿元赞助苏宁足球,未来将推球迷手机
斯诺登及大批Twitter用户支持苹果拒绝破解iPhone
智联招聘更换董事长,已接到私有化邀约
足够安全,美国防部计划将400万部设备升级至Win10
乐视与阿斯顿马丁将成立电动汽车合资公司
任天堂首款手游将在美国日本16个国家上线
特斯拉2015年亏损超8亿美元,押宝Model 3欲翻盘
百度回应高价置顶招嫖问题:未发现相关违规推广
日本记者体验虚拟现实情人节,约会性感女优
谷歌CEO皮查伊力挺苹果:反对FBI的过分要求
谷歌快递在美推出生鲜配送服务,死磕亚马逊
还是输了:苹果操纵数字图书遭罚款4.5亿美元
iPad第一季出货或至980万部,创史上最差纪录
Lyft CEO:2年内在美国市场份额超过Uber
谷歌无人驾驶团队扩招,暗示即将量产Java正确获取星期Calendar.DAY_OF_WEEK - 推酷
Java正确获取星期Calendar.DAY_OF_WEEK
正确获取星期几(Calendar.DAY_OF_WEEK)
Calendar now = Calendar.getInstance();
//一周第一天是否为星期天
boolean isFirstSunday = (now.getFirstDayOfWeek() == Calendar.SUNDAY);
//获取周几
int weekDay = now.get(Calendar.DAY_OF_WEEK);
//若一周第一天为星期天,则-1
if(isFirstSunday){
weekDay = weekDay - 1;
if(weekDay == 0){
weekDay = 7;
//打印周几
System.out.println(weekDay);
//若当天为日(星期一),则打印输出:1
//若当天为日(星期五),则打印输出:5
//若当天为日(星期日),则打印输出:7
星期日为一周的第一天
DAY_OF_WEEK返回值
星期一为一周的第一天
DAY_OF_WEEK返回值
以下参考:
1. 在获取月份时,Calendar.MONTH + 1 的原因
Java中的月份遵循了罗马历中的规则:当时一年中的月份数量是不固定的,第一个月是JANUARY。而Java中Calendar.MONTH返回的数值其实是当前月距离第一个月有多少个月份的数值,JANUARY在Java中返回“0”,所以我们需要+1。
2. 在获取星期几 Calendar.DAY_OF_WEEK – 1 的原因
Java中Calendar.DAY_OF_WEEK其实表示:一周中的第几天,所以他会受到&
第一天是星期几
有些地区以星期日作为一周的第一天,而有些地区以星期一作为一周的第一天,这2种情况是需要区分的。
看下表的返回值
星期日为一周的第一天
DAY_OF_WEEK返回值
星期一为一周的第一天
DAY_OF_WEEK返回值
所以Calendar.DAY_OF_WEEK需要根据本地化设置的不同而确定是否需要 “-1”
Java中设置不同地区的输出可以使用 Locale.setDefault(Locale.地区名) 来实现。
System.out.println(calendar.get(Calendar.DAY_OF_WEEK));
返回的是周几,而不是一周的第几天
可以这样设置,星期第一天是星期几:
calendar.setFirstDayOfWeek(Calendar.MONDAY);
也可以设置Calendar.SUNDAY
设置好了就决定了当前日期的WEEK_OF_YEAR,
但并不会改变DAY_OF_WEEK
3. 获取日期时 Calendar.DAY_OF_MONTH 不需要特殊的操作,他直接返回一个月中的第几天
已发表评论数()
已收藏到推刊!
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
排版有问题
没有分页内容
视频无法显示
图片无法显示11083人阅读
JAVA(39)
在开发中经常会使用到一些日期方面的操作,下面例子展示几个常用的操作。
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);
注:格式化字符串存在区分大小写
对于创建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_
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_
4、取得两个日期之间的相差多少天
已知两个日期,计算它们之间相差多少天。
// 取得两个日期之间的相差多少天
public static long getDaysBetween(Date date0, Date date1) {
long daysBetween = (date0.getTime() - date1.getTime() + 1000000) / ;// 0*24*1000
用立即数,减少乘法计算的开销
return daysB
5、完整的测试代码
package org.ml.
import java.text.ParseE
import java.text.SimpleDateF
import java.util.C
import java.util.D
public class CalendarDemo {
public static void main(String[] args) {
String strDate = &&;// 定义日期字符串
SimpleDateFormat format = new SimpleDateFormat(&yyyy-MM-dd&);// 定义日期格式
Date date =
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);
// 取得日期是某年的第几周
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_
// 取得某个月有多少天
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_
// 取得两个日期之间的相差多少天
public static long getDaysBetween(Date date0, Date date1) {
long daysBetween = (date0.getTime() - date1.getTime() + 1000000) / ;// 0*24*1000
用立即数,减少乘法计算的开销
return daysB
6、测试结果
7、引出的问题
看下面的代码:
public static void main(String[] args) throws Exception{
String strDate = &999-999-999&;// 定义日期字符串
SimpleDateFormat format = new SimpleDateFormat(&yyyy-MM-dd&);// 定义日期格式
Date date =
date = format.parse(strDate);// 将字符串转换为日期
} catch (ParseException e) {
System.out.println(&日期格式有误,请给出正确的日期格式&);
System.out.println(format.format(date));
Java中使用yyyy-MM-dd日期格式进行转换,转换字符串为999-999-999时,没有出现异常,反倒是执行通过了。
运行结果:
解决办法如下:
在date = format.parse(strDate)前面加上format.setLenient(false)就行了。意思是【指定日期/时间解析是否不严格。进行不严格解析时,解析程序可以使用启发式的方法来解释与此对象的格式不精确匹配的输入。进行严格解析时,输入必须匹配此对象的格式。&】
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:300606次
积分:3026
积分:3026
排名:第6750名
原创:51篇
转载:26篇
评论:133条
(1)(1)(2)(1)(2)(1)(1)(1)(2)(4)(9)(17)(17)(10)(9)Java中获取指定日为星期几及其他日期操作
在开发中经常会使用到一些日期方面的操作,下面例子展示几个常用的操作。
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); &
注:格式化字符串存在区分大小写
对于创建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_ &
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_ &
4、取得两个日期之间的相差多少天
已知两个日期,计算它们之间相差多少天。
&pre name=&code& class=&java&&// 取得两个日期之间的相差多少天 &
& & public static long getDaysBetween(Date date0, Date date1) { &
& & & & long daysBetween = (date0.getTime() - date1.getTime() + 1000000) / ;// 0*24*1000 &用立即数,减少乘法计算的开销 &
& & & & return daysB &
& & }&/pre& &
&pre&&/pre& &
&pre&&/pre& &
&pre&&/pre& &
&pre&&/pre& &
5、完整的测试代码
package org.ml. &
import java.text.ParseE &
import java.text.SimpleDateF &
import java.util.C &
import java.util.D &
public class CalendarDemo { &
& & public static void main(String[] args) { &
& & & & String strDate = &&;// 定义日期字符串 &
& & & & SimpleDateFormat format = new SimpleDateFormat(&yyyy-MM-dd&);// 定义日期格式 &
& & & & Date date = &
& & & & 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); &
& & // 取得日期是某年的第几周 &
& & 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_ &
& & // 取得某个月有多少天 &
& & 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_ &
& & // 取得两个日期之间的相差多少天 &
& & public static long getDaysBetween(Date date0, Date date1) { &
& & & & long daysBetween = (date0.getTime() - date1.getTime() + 1000000) / ;// 0*24*1000 &用立即数,减少乘法计算的开销 &
& & & & return daysB &
6、测试结果

我要回帖

更多关于 idea new 没有java 的文章

 

随机推荐