java里的日期时间亚洲必赢官网app

By admin in 亚洲必赢官网app on 2019年2月14日

  为了更好精通java的日子时间类,在此地大家先介绍一下有关历法、标准时间的一部分定义。

  历法有为数不少种,大家大中华上下伍仟年,自然也有谈得来的历法,生活中大家普通把自身古板的历法叫做农历,也有人叫它农历或夏历。注意,这些“夏历”的“夏”和“夏令时间”的“夏”不是贰个意思。“夏历”的“夏”是周朝的“夏”,因为据他们说大家未来应用的那套阴历在作者国上古一代的周朝时就曾经进化得很齐全了。

  当然了,不只是华夏有友好的历法,很多部族众多古文明国家都有过自身的历法。比如,格里高里历,它实际就是大家生存中采纳和称作阴历或农历的那套历法。格里高利历是公历的正规化名称,是一种源自于西方社会的历法。它先由意国阿洛伊修斯·里利乌斯(约1519-1576)与克拉乌等学者在儒略历的根基上加以改革,后由教皇格里高利十三世于1582年公布。作者国是在辛未革命后基于一时半刻政党通电,从一九一三年四月7日正式使用格里高利历的。一九五零年四月2二十一日,经中国人民政治协商会议首先届全部会议通过,中华夏族民共和国行使国际社会多数国度通用的西历和西元作为历法和纪年。


  标准时间(Standard
Time)有世界标准时间(World Standard
Time,WST)和中国标准时间(China Standard
提姆e,CST)。中国专业时间就是大家寻常提到的东京时间,上海时间拔取东八时区的区时作为标准时间。而世界标准时间即格林威治时间(**
GreenwichMeanTime,GMT**),指位于英帝国London包河区的皇家格林尼治天文台(1675年,当时,United Kingdom的航海事业升高迅猛,为了消除在海上测定经度的急需,United Kingdom当局在London西北郊距市主旨约20多公里,泰晤士河畔的皇室Green尼治花园中确立了这么些天文台)的正儿八经时间,本初子午线就被定义在那里,格林尼治标准时间的正午是指当太阳横穿格林尼治本初子午线时的时间。巴黎时间(中国专业时间)和格林威治时间(世界标准时间)相差整整八钟头,即Hong Kong时间=格林威治时间+8小时。新加坡时间,东京(Tokyo)岁月,伦敦岁月那一个专业时间都以在格林威治时间的底子上统计得来的。**

  java类库里有五个GregorianCalendar类,就是我们的格里高利历法类,它用那么些类代表恐怕说包装了格里高利历法。因为GregorianCalendar这几个类还和上边提到的儒略历也有提到,所以接下去大家把格里高利历和儒略历的关联也简要介绍一下。

  儒略历是格里高利历(农历)的前身,于公元前46年,由当时的拉各斯天君儒略·恺撒在天翻译家索西琴尼的帮助下制定并实施。**儒略历以回归年为着力单位,是一部纯粹的阴历,它比回归年365.242十四日长0.007二十九日,400年要多出3.二日。1500年后由于误差较大,被波士顿教皇格里高利十三世于1582年进展改正与修订,变为格里历,即沿用距今的世界通用的公历。格里高利历的每年平均长度为36二日5时五十分12秒,比回归年长26秒,尽管照此计算,两千年后仍存在1天的误差,但诸如此类的精确度已经万分巨大了。由于它内容简明扼要,而且精度较高,由此它渐渐为各国政党所运用。**

  注意:格里高利历1582年三月八日事先,应用的是儒略历。

  1582年3月31日,格里高利揭橥了改历命令,内容是:
  一、1582年5月12日后的一天是九月1二二日,而不是七月十2十一日,但星期序号依旧两次三番计算,六月三日是周伍,第2天十一月二十八日是周天。那样,就把1500年以来积攒的老账一笔勾消了。
  二、改闰年格局为:
凡公元年数能被4整除的是闰年,但当公元年数前面是带三个“0”的“世纪年”时,必须能被400整除的年才是闰年。



    进入正题!!!

  java里有三个Calendar抽象类(历法抽象类),其常用的得以已毕类为GregorianCalendar类(格里高利历法类)。

  注意java里的GregorianCalendar类在1582年四月二十八日事先,应用的也是儒略历。我们可以透过代码应用反证法来表达,大家掌握,在格里高利历和儒略历的系统里是没有1582年四月30日、二十六日、二5日那多少个日子的,那我们就故意给java的GregorianCalendar类的目的赋值为1582年7月二日,看看它运转的结果到底是如何样子的?

亚洲必赢官网app 1亚洲必赢官网app 2

 1 import java.text.ParseException;
 2 import java.text.SimpleDateFormat;
 3 import java.util.Date;
 4 
 5 public class JulianCalendar {
 6     public static void main(String[] args) throws ParseException {
 7         String str = "1582-10-07 00:00:00";
 8         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 9         Date date = sdf.parse(str);
10         System.out.println(date);
11     }
12 }

注脚儒略历代码示例

亚洲必赢官网app 3亚洲必赢官网app 4

1 Sun Oct 17 00:00:00 CST 1582

运作结果  
          

  从下面的代码运营结果看,大家终将地得出结论,java的GregorianCalendar类包装的是格里高利历法和儒略历法。


   假使我们想要实例化Calendar类,可以调用其静态方法getInstance(),该方法会根据当下系统所在地段重返二个兑现类,半数以上地区都以阴历,即GregorianCalendar类。并且那个GregorianCalendar完结类暗中同意表示近期系统时间,相当于windows操作系统桌面右下角的光阴,对于我们来说就是阴历东京时间某年某月某日某时某分某秒……

亚洲必赢官网app 5亚洲必赢官网app 6

1 import java.util.Calendar;
2 
3 public class CalendarDemo {
4     public static void main(String[] args) {
5         Calendar calendar = Calendar.getInstance();
6         System.out.println(calendar);
7         }
8 }

示范代码

亚洲必赢官网app 7亚洲必赢官网app 8

java.util.GregorianCalendar[time=1490616294512,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2017,MONTH=2,WEEK_OF_YEAR=13,WEEK_OF_MONTH=5,DAY_OF_MONTH=27,DAY_OF_YEAR=86,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=4,AM_PM=1,HOUR=8,HOUR_OF_DAY=20,MINUTE=4,SECOND=54,MILLISECOND=512,ZONE_OFFSET=28800000,DST_OFFSET=0]

亚洲必赢官网app,运作结果

  我们看来Calendar类的toString()方法包涵的始末很多,但可读性不强。


  所以那一个时候我们须求用到Calendar类的别的三个措施,getTime()方法,那几个艺术再次来到的是五个Date类的目标。

亚洲必赢官网app 9亚洲必赢官网app 10

 1 import java.util.Calendar;
 2 import java.util.Date;
 3 
 4 public class CalendarDemo {
 5     public static void main(String[] args) {
 6         Calendar calendar = Calendar.getInstance();
 7         Date date = calendar.getTime();
 8         System.out.println(date);
 9         }
10 }

示范代码

亚洲必赢官网app 11亚洲必赢官网app 12

1 Mon Mar 27 19:38:40 CST 2017

运作结果

  这一个格式好多了,但它也不是咱们超过半数时候习惯的格式。


    那时可以应用JDK里的别的3个类SimpleDateFormat,该类可以依照三个点名的自定义日期格式将Date与String之间展开互动转换,通过它大家得以赢得想要的其余格式的日期表现格局。

亚洲必赢官网app 13亚洲必赢官网app 14

1 public class CalendarDemo {
2     public static void main(String[] args) {
3         Calendar calendar = Calendar.getInstance();
4         Date date = calendar.getTime();
5         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
6         String str = sdf.format(date);
7         System.out.println(str);
8         }
9 }

演示代码

亚洲必赢官网app 15亚洲必赢官网app 16

1 2017-03-27 20:19:15

运维结果

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 亚洲必赢手机官网 版权所有