您当前的位置: 首页 > 

cuiyaonan2000

暂无认证

  • 2浏览

    0关注

    248博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

JDK: Date Process

cuiyaonan2000 发布时间:2022-03-15 15:24:46 ,浏览量:2

序言

整理下JDK8以后针对时间的加强处理

参考资料:

  1. Java 8 日期时间 API | 菜鸟教程

概述 时间点

此类的对象表示时间线上的一点。可以理解为人类的绝对时间。

因为是时间线的一点,所以时间点可以比较大小,那么这个时间点的标准都是统一的;即这个时间点对于整个地球人们来说是唯一的,不是北京时间、也不是东京时间、而是世界时间。

时间线

时间点在时间线上(点在线上)。时间线上有三个重要的点:最大值点、最小值点、原点。  

Java时间线上的时间的原点是:(由此可见Java的时间原点就是1970年01月01日00时00分00秒.另外我们一般用北京时间,所以我们的时间戳应该是1970年01月01日08时00分00秒,逗是在原来的基础上加8小时cuiyaonan2000@163.com)

Java时间线上的最大时间是 (这个相当于是人为的设置了一个无限大的年份.即10亿年,现在才是2022年^_^,所以时间是够用的)

Java时间线上的最小时间是 (这个相当于是人为的设置了一个最小的年份.即负的10亿年,那为什么原点是1970年呢,因为把原点设置在1970年没有任何的现实问题,也可以设置1971年或者1969年,大家的约定而已cuiyaonan2000@163.com)

 

时间单位

年、月、日、时、分、秒都是时间的单位。 现在人们把控自己生活节奏已经到了分钟这个单位;而科技的进步要求把控我们的机器的时间单位是秒、毫秒、纳秒。

时间的统计分类 标识名称含义GMTGreenwich Mean Time 格林尼治标准时间,十七世纪,格林威治皇家天文台为了海上霸权的扩张计画而进行天体观测。到了1884年决定以通过格林威治的子午线作为划分地球东西两半球的经度零度,并以地球由西向东每24小时自转一周360°,订定每隔经度15°,时差1小时。而每15°的经线则称为该时区的中央经线,将全球划分为24个时区,其中包含23个整时区及180°经线左右两侧的2个半时区,东区的时间要早于西区,例如北京是东八区,东京在东九区,北京现在是下午14:00,那东京就是下午15:00UTCCoordinated Universal Time 世界协调时间,比GMT更加精准,但功能和精度基本差不多ISOISO 8601是日期和时间的表示方法,即用字母和符号表示日期和时间时间戳从1970-01-01 00:00:00与现在所差的秒数,这里的差值表示的伦敦时间的差值,换算到本地时,会加上本地的偏移量的秒数。

老版本的问题

  • 非线程安全 − java.util.Date 是非线程安全的,所有的日期类都是可变的,这是Java日期类最大的问题之一。----java.time的时间对象所有操作都是创建一个新的时间对象,而不是修改原来的时间对象cuiyaonan2000@163.com

  • 设计很差 − Java的日期/时间类的定义并不一致,在java.util和java.sql的包中都有日期类,此外用于格式化和解析的类在java.text包中定义。java.util.Date同时包含日期和时间,而java.sql.Date仅包含日期,将其纳入java.sql包并不合理。另外这两个类都有相同的名字,这本身就是一个非常糟糕的设计。---------------java.util.Date不是final类,java.sql.Date集成了它,且仅包含了日期cuiyaonan2000@163.com

  • 时区处理麻烦 − 日期类并不提供国际化,没有时区支持,因此Java引入了java.util.Calendar和java.util.TimeZone类,但他们同样存在上述所有的问题。

新版的新增

Java 8 在 java.time 包下提供了很多新的 API。以下为两个比较重要的 API:

  • Local(本地) − 简化了日期时间的处理,没有时区的问题。

  • Zoned(时区) − 通过制定的时区处理日期时间。

新的java.time包涵盖了所有处理日期,时间,日期/时间,时区,时刻(instants),过程(during)与时钟(clock)的操作。

新版时间处理

关于时间的处理.这次JDK8 进行了归纳.统一放置在了如下的目录下,不会像之前那样关于时间的处理分散在各个包下的情况cuiyaonan2000@163.com

Calendar类都可以被新的api取代,新的api的大多数类都是线程安全的,加减时间返回的都是一个新的实体,不会改变原来对象的属性。

package java.time;

该包下的类如下所示:

时间的处理

根据实际情况,时间对象有3中状态.即:日期,时间,日期+时间.这3中组合,分别对应的对象是cuiyaonan2000@163.com:

  1. LocalDate: 针对日期的处理 格式: 2012-03-10 
  2. LocalTime: 针对时间的处理 格式: 11:03:25.542
  3. LocalDateTime: 针对时间与日期的处理 格式: 2012-03-10 11:03:25.542

用例

package cui.yao.nan.highlevetest.forkjoin;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.Month;

/**
 * @Author: cuiyaonan2000@163.com
 * @Description: todo
 * @Date: Created at 2022-3-15  10:51
 */
public class TestDate {

    public static void main(String[] args){


        // 基于系统的zone,获取系统的日期时间对象
        LocalDateTime currentTime = LocalDateTime.now();
        System.out.println("当前时间: " + currentTime);


        //字符串转换成localdatetime
        LocaDateTime ldt = LocalDateTime.parse("2011-11-11 22:11:11",DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

        //时间戳转换成localdatetime
		LocalDateTime ldt = Instant.ofEpochMilli(System.currentTimeMillis()).atZone(ZoneOffset.ofHours(8)).toLocalDateTime();



        //根据日期时间对象获取日期对象
        LocalDate date1 = currentTime.toLocalDate();
        System.out.println("date1: " + date1);


        //获取日期的年月日时分秒的方法
        Month month = currentTime.getMonth();
        int day = currentTime.getDayOfMonth();
        int seconds = currentTime.getSecond();
        System.out.println(currentTime.getMonthValue());
        System.out.println("月: " + month +", 日: " + day +", 秒: " + seconds);


        //设置年月日时分秒的方法
        LocalDateTime date2 = currentTime.withDayOfMonth(10).withYear(2012);
        System.out.println("date2: " + date2);
        LocalDate date3 = LocalDate.of(2014, Month.DECEMBER, 12);
        System.out.println("date3: " + date3);
        LocalTime date4 = LocalTime.of(22, 15);
        System.out.println("date4: " + date4);


        //根据字符串解析日期时间的方法
        LocalTime date5 = LocalTime.parse("20:15:30");
        System.out.println("date5: " + date5);


        //日期格式化输出
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH时mm分s秒SSS毫秒");
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDateTime.format(dtf));

    }

}

LocalDate,LocalTime,LocalDateTime 的Api肯定是相似的,包含了时间的几乎所有的处理.如下的是时间的相互比较的Api

年月日的增删改查方法:

特殊日期的工具类TemporalAdjusters

 

Instant 时间戳类

区别与LocalDateTime,LocalDate,LocalTime.Instant时间戳类的新替代.

具体参考

package cui.yao.nan.highlevetest.forkjoin;

import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjuster;

/**
 * @Author: cuiyaonan2000@163.com
 * @Description: todo
 * @Date: Created at 2022-3-15  10:51
 */
public class TestDate {

    public static void main(String[] args){

        //获取的是默认时区,获取的不是中国 的时区,是没过的时区
        Instant now = Instant.now();
        System.out.println(now);

        //将字符串转换为时间戳,该格式是有要求的不能随便搞
        //T表示分隔符,Z表示的是UTC。
        //UTC:世界标准时间,在标准时间上加上8小时,即东八区时间,也就是北京时间。
        //北京时间:2020-01-14 00:00:00对应的国际标准时间格式为:2020-01-13T16:00:00.000Z
        Instant.parse("1970-02-01T00:00:00Z")


        //获取当前时区的,我们可以添加偏移量,返回偏移过后的日期. 设置8个时区的偏移量就是中国china
        OffsetDateTime offsetDateTime = now.atOffset(ZoneOffset.ofHours(8));
        System.out.println(offsetDateTime);
        System.out.println("===========================");


        //toEpochMilli():从1970 -01 - 01 00:00:00 截止到当前时间间隔的毫秒值
        long l1 = now.toEpochMilli();
        System.out.println(l1);


        //获取从1970 -01 - 01 00:00:00 截止到当前时间间隔的秒值
        long epochSecond = now.getEpochSecond();
        System.out.println(epochSecond);


        //把获取到的当前时间的秒数 换算成纳秒
        long namioa = now.getNano();
        System.out.println(namioa);

        //时间线上的最小值
        //-1000000000-01-01T00:00:00Z
        System.out.println(Instant.MIN);

        //时间的原点,我们现在所有时间都是基于该时间
        //1970-01-01T00:00:00Z
        System.out.println(Instant.EPOCH);

        //所能支持的最大时间年份
        //+1000000000-12-31T23:59:59.999999999Z
        System.out.println(Instant.MAX);



    }

}

另增加毫秒数

ofEpoch系列方法:

  • ofEpochSecond(): 给计算机元年增加秒数
  • ofEpochMilli(): 给计算机元年增加毫秒数

Duration 计算2个时间的间隔
  • 静态方法 between(): 计算两个时间的间隔,默认是秒
  • toDays(): 将时间转换为以天为单位的
  • toHours(): 将时间转换为以时为单位的
  • toMinutes(): 将时间转换为以分钟为单位的
  • toMillis(): 将时间转换为以毫秒为单位的
  • toNanos(): 将时间转换为以纳秒为单位的

package cui.yao.nan.highlevetest.forkjoin;

import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjuster;

/**
 * @Author: cuiyaonan2000@163.com
 * @Description: todo
 * @Date: Created at 2022-3-15  10:51
 */
public class TestDate {

    public static void main(String[] args){
        //计算时间的间隔
        Instant start = Instant.now();
        for (int i = 0; i < 15; i++) {
            System.out.println(i);
        }
        Instant end = Instant.now();
        Duration duration = Duration.between(start, end);
        long l = duration.toNanos();

        //间隔的时间
        System.out.println("循环耗时:"+l+"纳秒");
    }

}
Period计算2个日期的间隔
  • 静态方法 between(): 计算两个日期之间的间隔
  • getYears(): 获取年份
  • getMonths(): 获取月份
  • getDays(): 获取天数

使用时区的日期时间API
  • ZonedDate  对应LocalDate,只是没有带时区

  • ZonedTime 对应ZonedTime,只是没有带时区

  • ,ZonedDateTime 对应ZonedDateTime,只是没有带时区

package cui.yao.nan.highlevetest.forkjoin;

import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjuster;
import java.util.Set;

/**
 * @Author: cuiyaonan2000@163.com
 * @Description: todo
 * @Date: Created at 2022-3-15  10:51
 */
public class TestDate {

    public static void main(String[] args){

        //ZoneID 世界时区类
        //获取世界各地的时区编号。
        Set availableZoneIds = ZoneId.getAvailableZoneIds();
        for (String availableZoneId : availableZoneIds) {
            System.out.println(availableZoneId);
        }

        System.out.println("=====================");
        //获取系统的默认时区编号
        ZoneId zoneId = ZoneId.systemDefault();
        System.out.println(zoneId);

        //获取其他国家的日期
        LocalDateTime now = LocalDateTime.now();
        //获取指定时区的日期时间
        ZoneId zoneId1 = ZoneId.of("Europe/Monaco");
        ZonedDateTime zonedDateTime = now.atZone(zoneId1);  //获得指定时区的当前时间
        System.out.println(zonedDateTime);

        System.out.println("=====================");
        //根据时区,获取该地区的日期
        LocalDateTime now1 = LocalDateTime.now(ZoneId.of("America/Phoenix"));  //获得指定时区的当前时间(不带时区信息)
        System.out.println(now1);
    }

}

ZoneId&ZoneOffset
  • ZoneId: 用于保存了全世界各地的时区ID
  • ZoneOffset: 用于时间上加减,转换不同的时区
ZoneId.getAvailableZoneIds()所包含的时区
[Asia/Aden, America/Cuiaba, Etc/GMT+9, Etc/GMT+8, Africa/Nairobi, America/Marigot, 
Asia/Aqtau, Pacific/Kwajalein, America/El_Salvador, Asia/Pontianak, Africa/Cairo, 
Pacific/Pago_Pago, Africa/Mbabane, Asia/Kuching, Pacific/Honolulu, Pacific/Rarotonga,
 America/Guatemala, Australia/Hobart, Europe/London, America/Belize, America/Panama, 
Asia/Chungking, America/Managua, America/Indiana/Petersburg, Asia/Yerevan, 
Europe/Brussels, GMT, Europe/Warsaw, America/Chicago, Asia/Kashgar, Chile/Continental,
 Pacific/Yap, CET, Etc/GMT-1, Etc/GMT-0, Europe/Jersey, America/Tegucigalpa, Etc/GMT-5, 
Europe/Istanbul, America/Eirunepe, Etc/GMT-4, America/Miquelon, Etc/GMT-3, 
Europe/Luxembourg, Etc/GMT-2, Etc/GMT-9, America/Argentina/Catamarca, Etc/GMT-8, Etc/GMT-7, Etc/GMT-6, Europe/Zaporozhye, Canada/Yukon, Canada/Atlantic, Atlantic/St_Helena, 
Australia/Tasmania, Libya, Europe/Guernsey, America/Grand_Turk, Asia/Samarkand, 
America/Argentina/Cordoba, Asia/Phnom_Penh, Africa/Kigali, Asia/Almaty, US/Alaska, 
Asia/Dubai, Europe/Isle_of_Man, America/Araguaina, Cuba, Asia/Novosibirsk, 
America/Argentina/Salta, Etc/GMT+3, Africa/Tunis, Etc/GMT+2, Etc/GMT+1, Pacific/Fakaofo,
 Africa/Tripoli, Etc/GMT+0, Israel, Africa/Banjul, Etc/GMT+7, Indian/Comoro, Etc/GMT+6, 
Etc/GMT+5, Etc/GMT+4, Pacific/Port_Moresby, US/Arizona, Antarctica/Syowa, Indian/Reunion, 
Pacific/Palau, Europe/Kaliningrad, America/Montevideo, Africa/Windhoek, Asia/Karachi, 
Africa/Mogadishu, Australia/Perth, Brazil/East, Etc/GMT, Asia/Chita, Pacific/Easter, 
Antarctica/Davis, Antarctica/McMurdo, Asia/Macao, America/Manaus, Africa/Freetown, Europe/Bucharest, Asia/Tomsk, America/Argentina/Mendoza, Asia/Macau, Europe/Malta, Mexico/BajaSur, Pacific/Tahiti, Africa/Asmera, Europe/Busingen, America/Argentina/Rio_Gallegos, Africa/Malabo, Europe/Skopje, America/Catamarca, 
America/Godthab, Europe/Sarajevo, Australia/ACT, GB-Eire, Africa/Lagos, America/Cordoba, Europe/Rome, Asia/Dacca, Indian/Mauritius, Pacific/Samoa, America/Regina, America/Fort_Wayne, America/Dawson_Creek, Africa/Algiers, Europe/Mariehamn, 
America/St_Johns, America/St_Thomas, Europe/Zurich, America/Anguilla, Asia/Dili, America/Denver, Africa/Bamako, Europe/Saratov, GB, Mexico/General, Pacific/Wallis, Europe/Gibraltar, Africa/Conakry, Africa/Lubumbashi, Asia/Istanbul, America/Havana, NZ-CHAT, Asia/Choibalsan, America/Porto_Acre, Asia/Omsk, Europe/Vaduz, US/Michigan, 
Asia/Dhaka, America/Barbados, Europe/Tiraspol, Atlantic/Cape_Verde, Asia/Yekaterinburg, America/Louisville, Pacific/Johnston, Pacific/Chatham, Europe/Ljubljana, America/Sao_Paulo, Asia/Jayapura, America/Curacao, Asia/Dushanbe, America/Guyana, America/Guayaquil, America/Martinique, Portugal, Europe/Berlin, Europe/Moscow, Europe/Chisinau, America/Puerto_Rico, America/Rankin_Inlet, Pacific/Ponape, Europe/Stockholm, Europe/Budapest, America/Argentina/Jujuy, Australia/Eucla, 
Asia/Shanghai, Universal, Europe/Zagreb, America/Port_of_Spain, Europe/Helsinki, Asia/Beirut, Asia/Tel_Aviv, Pacific/Bougainville, US/Central, Africa/Sao_Tome, Indian/Chagos, America/Cayenne, Asia/Yakutsk, Pacific/Galapagos, Australia/North, Europe/Paris, Africa/Ndjamena, Pacific/Fiji, America/Rainy_River, Indian/Maldives, Australia/Yancowinna, SystemV/AST4, Asia/Oral, America/Yellowknife, Pacific/Enderbury, America/Juneau, Australia/Victoria, America/Indiana/Vevay, Asia/Tashkent, Asia/Jakarta,
 Africa/Ceuta, Asia/Barnaul, America/Recife, America/Buenos_Aires, America/Noronha, America/Swift_Current, Australia/Adelaide, America/Metlakatla, Africa/Djibouti, America/Paramaribo, Asia/Qostanay, Europe/Simferopol, Europe/Sofia, Africa/Nouakchott, Europe/Prague, America/Indiana/Vincennes, Antarctica/Mawson, America/Kralendijk, 
Antarctica/Troll, Europe/Samara, Indian/Christmas, America/Antigua, Pacific/Gambier, America/Indianapolis, America/Inuvik, America/Iqaluit, Pacific/Funafuti, UTC, Antarctica/Macquarie, Canada/Pacific, America/Moncton, Africa/Gaborone, Pacific/Chuuk, Asia/Pyongyang, America/St_Vincent, Asia/Gaza, Etc/Universal, PST8PDT, Atlantic/Faeroe, Asia/Qyzylorda, Canada/Newfoundland, America/Kentucky/Louisville, America/Yakutat, Asia/Ho_Chi_Minh, Antarctica/Casey, Europe/Copenhagen, Africa/Asmara, Atlantic/Azores, 
Europe/Vienna, ROK, Pacific/Pitcairn, America/Mazatlan, Australia/Queensland, Pacific/Nauru, Europe/Tirane, Asia/Kolkata, SystemV/MST7, Australia/Canberra, MET, Australia/Broken_Hill, Europe/Riga, America/Dominica, Africa/Abidjan, America/Mendoza, America/Santarem, Kwajalein, America/Asuncion, Asia/Ulan_Bator, NZ, America/Boise, Australia/Currie, EST5EDT, Pacific/Guam, Pacific/Wake, Atlantic/Bermuda, America/Costa_Rica, America/Dawson, Asia/Chongqing, Eire, Europe/Amsterdam, 
America/Indiana/Knox, America/North_Dakota/Beulah, Africa/Accra, Atlantic/Faroe, Mexico/BajaNorte, America/Maceio, Etc/UCT, Pacific/Apia, GMT0, America/Atka, Pacific/Niue, Australia/Lord_Howe, Europe/Dublin, Pacific/Truk, MST7MDT, America/Monterrey, America/Nassau, America/Jamaica, Asia/Bishkek, America/Atikokan, Atlantic/Stanley, Australia/NSW, US/Hawaii, SystemV/CST6, Indian/Mahe, Asia/Aqtobe, 
America/Sitka, Asia/Vladivostok, Africa/Libreville, Africa/Maputo, Zulu, America/Kentucky/Monticello, Africa/El_Aaiun, Africa/Ouagadougou, America/Coral_Harbour, Pacific/Marquesas, Brazil/West, America/Aruba, America/North_Dakota/Center, 
America/Cayman, Asia/Ulaanbaatar, Asia/Baghdad, Europe/San_Marino, America/Indiana/Tell_City, America/Tijuana, Pacific/Saipan, SystemV/YST9, Africa/Douala, America/Chihuahua, America/Ojinaga, Asia/Hovd, America/Anchorage, Chile/EasterIsland, America/Halifax, Antarctica/Rothera, America/Indiana/Indianapolis, US/Mountain, Asia/Damascus, America/Argentina/San_Luis, America/Santiago, Asia/Baku, America/Argentina/Ushuaia, Atlantic/Reykjavik, Africa/Brazzaville, Africa/Porto-Novo, 
America/La_Paz, Antarctica/DumontDUrville, Asia/Taipei, Antarctica/South_Pole, Asia/Manila, Asia/Bangkok, Africa/Dar_es_Salaam, Poland, Atlantic/Madeira, Antarctica/Palmer, America/Thunder_Bay, Africa/Addis_Ababa, Asia/Yangon, Europe/Uzhgorod, Brazil/DeNoronha, Asia/Ashkhabad, Etc/Zulu, America/Indiana/Marengo, America/Creston, America/Punta_Arenas, America/Mexico_City, Antarctica/Vostok, Asia/Jerusalem, Europe/Andorra, US/Samoa, PRC, Asia/Vientiane, Pacific/Kiritimati, America/Matamoros, America/Blanc-Sablon, Asia/Riyadh, Iceland, Pacific/Pohnpei, Asia/Ujung_Pandang, 
Atlantic/South_Georgia, Europe/Lisbon, Asia/Harbin, Europe/Oslo, Asia/Novokuznetsk, CST6CDT, Atlantic/Canary, America/Knox_IN, Asia/Kuwait, SystemV/HST10, Pacific/Efate, Africa/Lome, America/Bogota, America/Menominee, America/Adak, Pacific/Norfolk, Europe/Kirov, America/Resolute, Pacific/Kanton, Pacific/Tarawa, Africa/Kampala, Asia/Krasnoyarsk, Greenwich, SystemV/EST5, America/Edmonton, Europe/Podgorica, Australia/South, Canada/Central, Africa/Bujumbura, America/Santo_Domingo, US/Eastern, 
Europe/Minsk, Pacific/Auckland, Africa/Casablanca, America/Glace_Bay, Canada/Eastern, Asia/Qatar, Europe/Kiev, Singapore, Asia/Magadan, SystemV/PST8, America/Port-au-Prince, Europe/Belfast, America/St_Barthelemy, Asia/Ashgabat, Africa/Luanda, America/Nipigon, Atlantic/Jan_Mayen, Brazil/Acre, Asia/Muscat, Asia/Bahrain, Europe/Vilnius, America/Fortaleza, Etc/GMT0, US/East-Indiana, America/Hermosillo, America/Cancun, Africa/Maseru, Pacific/Kosrae, Africa/Kinshasa, Asia/Kathmandu, Asia/Seoul, 
Australia/Sydney, America/Lima, Australia/LHI, America/St_Lucia, Europe/Madrid, America/Bahia_Banderas, America/Montserrat, Asia/Brunei, America/Santa_Isabel, Canada/Mountain, America/Cambridge_Bay, Asia/Colombo, Australia/West, Indian/Antananarivo, Australia/Brisbane, Indian/Mayotte, US/Indiana-Starke, Asia/Urumqi, US/Aleutian, Europe/Volgograd, America/Lower_Princes, America/Vancouver, Africa/Blantyre, America/Rio_Branco, America/Danmarkshavn, America/Detroit, America/Thule, Africa/Lusaka, 
Asia/Hong_Kong, Iran, America/Argentina/La_Rioja, Africa/Dakar, SystemV/CST6CDT, America/Tortola, America/Porto_Velho, Asia/Sakhalin, Etc/GMT+10, America/Scoresbysund, Asia/Kamchatka, Asia/Thimbu, Africa/Harare, Etc/GMT+12, Etc/GMT+11, Navajo, America/Nome, Europe/Tallinn, Turkey, Africa/Khartoum, Africa/Johannesburg, Africa/Bangui, Europe/Belgrade, Jamaica, Africa/Bissau, Asia/Tehran, WET, Europe/Astrakhan, Africa/Juba, America/Campo_Grande, America/Belem, Etc/Greenwich, Asia/Saigon, America/Ensenada, Pacific/Midway, America/Jujuy, Africa/Timbuktu, America/Bahia, America/Goose_Bay, 
America/Virgin, America/Pangnirtung, Asia/Katmandu, America/Phoenix, Africa/Niamey, America/Whitehorse, Pacific/Noumea, Asia/Tbilisi, America/Montreal, Asia/Makassar, America/Argentina/San_Juan, Hongkong, UCT, Asia/Nicosia, America/Indiana/Winamac, SystemV/MST7MDT, America/Argentina/ComodRivadavia, America/Boa_Vista, America/Grenada, Asia/Atyrau, Australia/Darwin, Asia/Khandyga, Asia/Kuala_Lumpur, Asia/Famagusta, Asia/Thimphu, Asia/Rangoon, Europe/Bratislava, Asia/Calcutta, America/Argentina/Tucuman, Asia/Kabul, Indian/Cocos, Japan, Pacific/Tongatapu, America/New_York, Etc/GMT-12, Etc/GMT-11, America/Nuuk, Etc/GMT-10, SystemV/YST9YDT, Europe/Ulyanovsk, Etc/GMT-14, 
Etc/GMT-13, W-SU, America/Merida, EET, America/Rosario, Canada/Saskatchewan, America/St_Kitts, Arctic/Longyearbyen, America/Fort_Nelson, America/Caracas, America/Guadeloupe, Asia/Hebron, Indian/Kerguelen, SystemV/PST8PDT, Africa/Monrovia, Asia/Ust-Nera, Egypt, Asia/Srednekolymsk, America/North_Dakota/New_Salem, Asia/Anadyr, Australia/Melbourne, Asia/Irkutsk, America/Shiprock, America/Winnipeg, Europe/Vatican,
 Asia/Amman, Etc/UTC, SystemV/AST4ADT, Asia/Tokyo, America/Toronto, Asia/Singapore, Australia/Lindeman, America/Los_Angeles, SystemV/EST5EDT, Pacific/Majuro, America/Argentina/Buenos_Aires, Europe/Nicosia, Pacific/Guadalcanal, Europe/Athens, US/Pacific, Europe/Monaco]
 

ZoneOffset调整到北京时间,如下源码也很简单,of()可以适配多种模式的时分秒的增加cuiyoanan2000@163.com

ZoneOffset.of("+8")
ZoneOffset.ofHours(8)

关注
打赏
1638267374
查看更多评论
立即登录/注册

微信扫码登录

0.5813s