java里之日子时

By admin in 亚洲必赢官网app on 2018年10月17日

  为了还好明java的日期时好像,在此地我们先介绍一下有关历法、标准时间的有定义。

  历法发生诸多种植,我们大中华上下五千年,自然也时有发生和好之历法,生活着我们便将好俗的历法叫做农历,也有人叫其阴历或夏历。注意,这个“夏历”的“夏”和“夏令时间”的“夏”不是一个含义。“夏历”的“夏”是夏朝之“夏”,因为据说我们现在动的立套农历在我国上古时期的夏朝常便曾经进化得要命齐全了。

  当然矣,不只是中国发生好之历法,很多族众多古文明国还来过好之历法。比如,格里高里历,它实在就是咱们活受到运用与叫阳历或阳历的就套历法。格里高利历是公历的正式号,是同等栽源自于西方社会的历法。它先由意大利阿洛伊修斯·里利乌斯(约1519-1576)与克拉乌等学者在儒略历的底子及加以改造,后由教皇格里高利十三大地于1582年通告。我国是以革命后因临时政府通电,从1912年1月1日正式以格里高利历的。1949年9月27日,经中国全民政治协商会议第一顶全体会议通过,中华人民共和国使用国际社会多数国度通用的西历和西元作为历法与纪年。


  标准日(Standard
Time)有世界标准时间(World Standard
Time,WST)和华夏业内日(China Standard
Time,CST)。中国正规时间便是咱常常提到的北京时间,北京时间采用东八时区底区时作为正式时间。而世界标准日尽管格林威治时间(**
GreenwichMeanTime,GMT**),拄在英国伦敦郊区的皇家格林尼治天文台(1675年,当时,英国的航海事业进步快,为了化解在海上测定经度的用,英国阁以伦敦东南郊距市中心约20大多母米,泰晤士河边上的国格林尼治花园中起了这个天文台)的正统时间,本初子午线就叫定义在那边,格林尼治标准日之正午是依当阳光横穿格林尼治本初子午线时之岁月。北京时间(中国标准时)和格林威治时间(世界标准日)相差任何八时,即北京时间=格林威治时+8小时。北京时间,东京时,纽约时空这些标准日都是在格林威治时间的功底及测算得来之。**

  java类库里有一个GregorianCalendar类,就是咱的格里高利历法类,它用此类似代表要说包装了格里高利历法。因为GregorianCalendar这个看似还和方面提到的儒略历也时有发生关联,所以接下我们将格里高利历和儒略历的涉及吗大概介绍一下。

  儒略历是格里高利历(公历)的前身,于公元前46年,由当时之罗马主帅儒略·恺撒在天文学家索西琴尼的帮扶下制定并实施。**儒略历以回归年啊主导单位,是同样统纯粹的阳历,它于回归年365.2422日添加0.0078日,400年设多生3.12日。1500年晚由误差较充分,被罗马教皇格里高利十三全球于1582年开展改进同修订,变为格里历,即沿用至今的世界通用的公历。格里高利历的历年平均长度为365日5时49分叉12秒,比回归年长26秒,虽然仍这个计算,3000年晚仍存在1天的误差,但如此的精确度已经相当巨大了。出于她内容简短,而且精度比高,因此其慢慢为各个政府所动。**

  注意:格里高利历1582年10月4日事先,应用之是儒略历。

  1582年3月1日,格里高利宣布了改历命令,内容是:
  一、1582年10月4日后的相同龙是10月15日,而休是10月5日,但星期序号仍然连续计算,10月4日凡是星期四,第二龙10月15日凡星期五。这样,就拿1500年以来积攒之老账一笔画勾销了。
  二、改闰年方式吧:
凡公元年数能让4整理除的凡闰年,但当公元年数后边是带动点儿独“0”的“世纪年”时,必须能给400收拾除了的年景才是闰年。



    进入正题!!!

  java里发生一个Calendar抽象类(历法亚洲必赢官网app抽象类),其常用之兑现类似为GregorianCalendar类(格里高利历法类)。

  注意java里的GregorianCalendar类在1582年10月4日事先,应用之为是儒略历。我们可由此代码应用反证法来证实,我们领略,在格里高利历和儒略历的体系里是尚未1582年10月5日、6日、7日就几乎单日子的,那我们就有意给java的GregorianCalendar类的靶子赋值为1582年10月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]

运作结果

  我们看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里的另外一个类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-2018 亚洲必赢手机官网 版权所有