calendar add(java calendar类)

admin 468 0

大家好,今天来为大家分享calendar add的一些知识点,和java calendar类的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!

一、Calendar 的 add 强制修改毫秒数的坑

1、问题: java的文档是这样说的,但是发现并未重新计算毫秒数。

2、原因:使用的 calender是通过 Calendar.getInstance();获取的,而这样获取的 calender中重新计算的方法是抽象的。所以相当于并未重新计算。

3、解决:不能获取抽象类 Calender,而应该获取实现了重新计算方法的 Calender的子类。例如: Calendar calendar= new GregorianCalendar();

4、同时也印证了,如果要继承抽象类 Calendar,必须实现其重新计算这些方法。

5、重新计算日历的毫秒数和所有字段,调用的是 Calendar中的 updateTime();方法。

6、又调用了computeTime();方法,但是在 Calendar抽象类中,computeTime();方法是抽象的,所以即使执行了add()之类的方法也不会更新到毫秒数。

7、说明:虽然其字段的值已经改变,但是毫秒数并未重新计算

8、但当在继承了 Calendar的子类中:

二、java calendar的add和set方法的区别

1、public void set(int field, int value)将指定的日历字段设置为给定的值,field参考常量字段值

2、public void set(year, month, date, hourOfDay, minute, second)

3、public void add(int field, int amount)根据日历的规则,为给定的日历字段添加或减去指定的时间量。

4、 public static void main(String[] args){

5、 Calendar calendar= Calendar.getInstance();

6、//从一个 Calendar对象中获取 Date对象

7、 Date date= calendar.getTime();

8、//使用给定的 Date设置此 Calendar的时间

9、 calendar.set(Calendar.DAY_OF_MONTH, 8);

10、 System.out.println("当前时间日设置为8后,时间是:"+ calendar.getTime());

11、 calendar.add(Calendar.HOUR, 2);

12、 System.out.println("当前时间加2小时后,时间是:"+ calendar.getTime());

13、 calendar.add(Calendar.MONTH,-2);

14、 System.out.println(“当前日期减2个月后,时间是:"+ calendar.getTime());

三、calendar 当前时间加一天怎么做 java

calendar当前时间加一天怎么做? java, java中的calendar如何在当前时间加一天?

Date date= new Date();设定当前日期

calendar.add(Calendar.setTime(date);/日历物件

Calendar calendar= Calendar.getInstance();/.DAY_OF_MONTH, 1);天数加一

Java是一种可以撰写跨平台应用程式的面向物件的程式设计语言。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、资料中心、游戏控制台、科学超级计算机、行动电话和网际网路,同时拥有全球最大的开发者专业社群。

与传统程式不同,Sun公司在推出 Java之际就将其作为一种开放的技术。全球数以万计的 Java开发公司被要求所设计的 Java软体必须相互相容。“Java语言靠群体的力量而非公司的力量”是 Sun公司的口号之一,并获得了广大软体开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。

Sun公司对 Java程式语言的解释是:Java程式语言是个简单、面向物件、分散式、解释性、健壮、安全与系统无关、可移植、高效能、多执行绪和动态的语言。

Java平台是基于 Java语言的平台。这样的平台目前非常流行,因此微软公司推出了与之竞争的.NET平台以及模仿 Java的 C#语言。

java在当前系统时间加一天主要是使用calendar类的add方法,如下程式码:

public static void main(String[] args){

Date date= new Date();新建此时的的系统时间

System.out.println(getNextDay(date));返回明天的时间

public static Date getNextDay(Date date){

Calendar calendar= Calendar.getInstance();

calendar.add(Calendar.DAY_OF_MONTH,+1);+1今天的时间加一天

$now_date= time();获得当前时间戳

$year= date("Y",$date);得到当前 year

$o_date= date("-m-d G:i:s",$date);除了year外的日期字串

$result= strtotime(($year+1).$o_date); year+ 1然后以字串连结的形式和$o_date结合成日期字串,再strtotime转化时间戳

----------------------------------------------

可以直接加上1year(平year)的秒数~

----------------------------------------------

echo strtotime("+1 year");返回的是时间戳,如果要转换成一般时间格式还需要下面的函式

echo date('Y-m-d H:i:s', strtotime("+1 year"));

==================================================================

同理,不仅仅可以+year还可以是天,月日都可以的,如下程式码:

echo strtotime("10 September 2000"),"\n";

echo strtotime("+1 day"),"\n";

echo strtotime("+1 week"),"\n";

echo strtotime("+1 week 2 days 4 hours 2 seconds"),"\n";

echo strtotime("next Thursday"),"\n";

echo strtotime("last Monday"),"\n";

tomcat时间跟系统时间不一致的问题解决方法摘自--黑夜的部落格一,在catalina.bat中配置如下: set JAVA_OPTS=%JAVA_OPTS%-Duser.timezone=GMT+08-Xms256m-Xmx800m-Djava.util.logging.manager=.apache.juli.ClassLoaderLogManager-Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"-Xms256m-Xmx800m(初始化记忆体大小为256m,可以使用的最大记忆体为800m),-Duser.timezone=GMT+08设定为北京时间二,在eclipse中设定在首选项->Tomcat->JVM Settings项,设定JRE的版本为'jre1.5.0_06',并且新增如下几个JVM Parameters:-Xms128m-Xmx512m-Dfile.encoding=UTF8-Duser.timezone=GMT+08

public static Date getNextDay(Date date){

Calendar calendar= Calendar.getInstance();

calendar.add(Calendar.DAY_OF_MONTH,-1);

系统时间、当前时间,如果都是同时区,结果是0

*方法名:getCurrentDate<br>

*需要格式的目标字串例:yyyy-MM-dd

publicstatic Date getCurrentDate(){

publicString getTodayString(){

Calendarca= Calendar.getInstance();

StringcurrDate= ca.get(Calendar.YEAR)+"-"

+(ca.get(Calendar.MONTH)+ 1)+"-"

+ca.get(Calendar.DAY_OF_MONTH);

ineek= ca.get(Calendar.DAY_OF_WEEK);

这前后时间可能是机器生成的,也可能是人工输入的,那么我们可以通过下面程式码来实现

DateFormat df= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date d1= df.parse("2004-03-26 13:31:40");

Date d2= df.parse("2004-01-02 11:30:24");

long diff= d1.getTime()- d2.getTime();这样得到的差值是微秒级别

long days= diff/(1000* 60* 60* 24);

long hours=(diff-days*(1000* 60* 60* 24))/(1000* 60* 60);

long minutes=(diff-days*(1000* 60* 60* 24)-hours*(1000* 60* 60))/(1000* 60);

System.out.println(""+days+"天"+hours+"小时"+minutes+"分");

四、java Date Calendar 区别

1、JAVA中 Date和 Calendar区别在于:

2、Date用于记录某一个含日期的、精确到毫秒的时间。重点在代表一刹那的时间本身。

3、Calendar用于将某一日期放到历法中的互动——时间和年、月、日、星期、上午、下午、夏令时等这些历法规定互相作用关系和互动。Calendar本身代表公历的一个简化缩水版,姑且叫“计算机历”。完整的公历是格里高利历,Java SE中以GregorianCalendar类来提供相关的历法功能。

好了,文章到这里就结束啦,如果本次分享的calendar add和java calendar类问题对您有所帮助,还望关注下本站哦!