Java教程 第48页

Java 特定区域格式-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 特定区域格式

Java日期时间 – Java特定区域格式 我们可以从不同的语言环境创建DateTimeFormatter。 DateTimeFormatter ofLocalizedDate(FormatStyle dateStyle) DateTimeFormatter ofLocalizedDateTime(FormatStyle dateTimeStyle) DateTimeFormatter ofLocalizedDateTime(FormatStyle dateStyle, FormatStyle timeStyle) DateTimeFormatter ofLocalizedTime(FormatStyle timeStyle) FormatStyle枚举有四个常量:SHORT,MEDIUM,LONG和FULL。 这些常量以不同的长度格式化日期和时间。 例子 import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.Month; import java.time.format.DateTimeFormatter; import java.time.format.FormatStyle; import java.util.Locale; public class Main { public static void main(String[] args) { LocalDate ld = LocalDate.of(2014, Month.JUNE, 21); LocalTime lt = LocalTime.of(17, 30, 20); LocalDateTime ldt = LocalDateTime.of(ld, lt); DateTimeFormatter fmt = DateTimeFormatter .ofLocalizedDate(FormatStyle.SHORT); System.out.println("Formatter Default Locale: " + fmt.getLocale()); System.out.println("Short Date: " + fmt.format(ld)); fmt = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM); System.out.println("Medium Date: " + fmt.format(ld)); fmt = DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG); System.out.println("Long Date: " + fmt.format(ld)); fmt = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL); System.out.println("Full Date: " + fmt.format(ld)); fmt = DateTimeFormatter.ofLocalizedTime(FormatStyle.SHORT); System.out.println("Short Time: " + fmt.format(lt)); fmt = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT); System.out.println("Short Datetime: " + fmt.format(ldt)); fmt =...

Java 自定义日期格式模式-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 自定义日期格式模式

Java日期时间 – 自定义日期格式模式 下面的列表显示了我们可以用来创建自定义数据格式模式的格式符号。 G 时代例如: G AD GGGG Anno Domini GGGGG A u 年 它可以是正数或负数。年是正数在一个时代开始日期之后。年份是时代开始日期之前的负数。2014年AD是2014年和2014年BC是-2014年。例如: u/uuu/uuuu 2014 uu 12 uuuuu 02014 y 年代 它计算从时代开始日期向前或向后的年份。它总是一个正数。2014年AD是2014年和2014年BC是2015年。在共同时代,0年是1 BC。 例如: y/yyy/yyyy 2014 yy 12 yyyyy 02014 D 一年中的(1 -366)例如: D 150 M/L 月份例如: M 5 MM 05 MMM Jul MMMM July d 日期 例如: d 21 dd 01 ddd 001 ddd 029 Q/q 每年的季度例如: Q 3 QQ 03 QQQ Q3 QQQQ 3rd quarter Y 每周一年例如: Y 2014 YY 12 YYY/YYYY 2014 w 周为基础的年度例如: w 31 W 周月例如: W 2 E 星期中的一天 例如: E 7 EE 07 EEE Sun EEEEE Sunday F 每月的星期几例如: F 1 a 上午/下午例如: a AM h 时钟小时AM/PM(1-12)例如: h 2 K 上午/下午时间(0-11)例如: K 3 k 时钟小时AM/PM(1-24)例如: k 7 H 时段(0-23)例如: H...

Java 预定义日期时间格式-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 预定义日期时间格式

Java日期时间 – Java预定义日期时间格式 预定义格式化程序在DateTimeFormatter 类中定义为常量。 BASIC_ISO_DATE格式并解析日期,而不使用两个日期组件之间的分隔符。例如:2014020920140221-0600 ISO_DATE格式并使用ISO分隔符解析日期,时间和数据时间。例如:2014-02-09 ISO_TIME格式并使用ISO分隔符解析日期,时间和数据时间。例如:15:21:32.92715:21:32.123-06:00 ISO_DATE_TIME格式并使用ISO分隔符解析日期,时间和数据时间。例如:2014-02-09-06:002014-02-09T15:20:07.123-06:002014-02-09T15:20:07.123-06:00[America/Chicago] ISO_INSTANT格式并解析表示时间的即时或日期时间对象,例如UTC格式的ZonedDateTime。例如:2014-02-09T21:23:56.870Z ISO_LOCAL_DATE格式或解析日期没有偏移。例如:2014-02-09 ISO_LOCAL_TIME格式或解析时间没有偏移。例如:15:30:12.123 ISO_LOCAL_DATE_TIME格式或解析无偏移的数据时间。例如:2014-02-09T15:29:11.214 ISO_OFFSET_DATE格式并使用ISO格式解析具有偏移量的日期。例如:2014-02-09-06:00 ISO_OFFSET_TIME格式并使用ISO格式解析具有偏移量的时间。例如:15:12:29.123-06:00 ISO_OFFSET_DATE_TIME格式并使用ISO格式解析具有偏移量的数据时间。例如:2014-02-09T15:33:07.07-06:0 ISO_ZONED_DATE_TIME格式并使用区域ID解析日期时间(如果可用)。例如:2014-02-09T15:45:49.123-06:002014-02-09T15:45:12.112-06:00[America/Chicago] ISO_ORDINAL_DATE格式并解析具有年和年的日期。例如:2014-009 ISO_WEEK_DATE格式并解析基于周的日期。 “2014-W02-4”表示2014年第二周的第四天。例如:2014-W02-42014-W02-4-06:00 RFC_1123_DATE_TIME格式并使用RFC1123规范解析电子邮件的数据时间。例如:Thu, 9 Jan 2014 15:12:12 -060 例子 我们可以使用DateTimeFormatter类中的以下方法来格式化日期时间值。 String format(TemporalAccessor temporal) void formatTo(TemporalAccessor temporal, Appendable appendable) 以下代码显示如何使用ISO_DATE格式化程序格式化LocalDate,OffsetDateTime和ZonedDateTime。 import java.time.LocalDate; import java.time.OffsetDateTime; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; public class Main{ public static void main(String[] argv){ String ldStr = DateTimeFormatter.ISO_DATE.format(LocalDate.now()); System.out.println(ldStr); String odtStr = DateTimeFormatter.ISO_DATE.format(OffsetDateTime.now()); System.out.println(odtStr); String zdtStr = DateTimeFormatter.ISO_DATE.format(ZonedDateTime.now()); System.out.println(zdtStr); } } 上面的代码生成以下结果。 例2 我们还可以使用格式()从日期时间类格式化日期时间对象。 import java.time.LocalDate; import java.time.OffsetDateTime; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; public class Main { public static void main(String[] argv) { LocalDate ld = LocalDate.now(); String ldStr = ld.format(DateTimeFormatter.ISO_DATE); System.out.println("Local Date: " + ldStr); OffsetDateTime odt = OffsetDateTime.now(); String odtStr = odt.format(DateTimeFormatter.ISO_DATE); System.out.println("Offset Datetime: " + odtStr); ZonedDateTime zdt =...

Java 非ISO日历系统-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 非ISO日历系统

Java日期时间 – Java非ISO日历系统 LocalDate使用ISO日历系统,这是公历。 Java Date-Time API还支持其他日历,例如泰国佛教日历,Hijrah日历,Minguo日历和日历。 非ISO日历相关类在java.time.chrono包中定义。 对于每个可用的非ISO日历系统,有一个自定义的年表和自定义的Date类。 自定义的Chronology类表示日历系统,而自定义的Date类表示自定义日历系统中的日期。 每个自定义Chronology类都包含一个INSTANCE常量,表示该类的单例实例。 例子 以下代码显示获取泰国佛教日历中的当前日期: import java.time.chrono.ThaiBuddhistChronology; import java.time.chrono.ThaiBuddhistDate; public class Main { public static void main(String[] args) { ThaiBuddhistChronology thaiBuddhistChrono = ThaiBuddhistChronology.INSTANCE; ThaiBuddhistDate now = thaiBuddhistChrono.dateNow(); ThaiBuddhistDate now2 = ThaiBuddhistDate.now(); System.out.println("Current Date in Thai Buddhist: " + now); System.out.println("Current Date in Thai Buddhist: " + now2); } } 上面的代码生成以下结果。 例2 我们可以使用 from()方法将日历系统中的日期转换为另一个日历系统。 以下代码显示如何将ISO日期转换为泰语佛教日期,反之亦然。 import java.time.LocalDate; import java.time.chrono.ThaiBuddhistDate; public class Main { public static void main(String[] args) { ThaiBuddhistDate thaiBuddhistNow = ThaiBuddhistDate.now(); LocalDate isoNow = LocalDate.now(); System.out.println("Thai Buddhist Current Date: " + thaiBuddhistNow); System.out.println("ISO Current Date: " + isoNow); // Convert Thai Buddhist date to ISO date and vice versa ThaiBuddhistDate thaiBuddhistNow2 = ThaiBuddhistDate.from(isoNow); LocalDate isoNow2 = LocalDate.from(thaiBuddhistNow); System.out.println("Thai Buddhist Current Date...

Java 日期时间查询-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 日期时间查询

Java日期时间查询 所有datetime类都支持查询,查询是对信息的请求。 我们可以从datetime对象获取日期时间组件,例如,我们可以从LocalDate获取年份。 查询请求不可用作组件的信息。 例如,我们可以查询LocalDate以查看它是否为星期一。 查询的结果可以是任何类型。 TemporalQuery<R> 接口表示一个查询。 所有datetime类都有一个query()方法,TemporalQuery作为参数。 TemporalQueries 类包含几个预定义的查询。 如果datetime对象没有查询请求的信息,该查询返回null。 以下代码显示如何使用预定义的查询。 import java.time.LocalDate; import java.time.LocalTime; import java.time.ZonedDateTime; import java.time.temporal.TemporalQueries; import java.time.temporal.TemporalQuery; import java.time.temporal.TemporalUnit; public class Main { public static void main(String[] args) { TemporalQuery<TemporalUnit> precisionQuery = TemporalQueries.precision(); TemporalQuery<LocalDate> localDateQuery = TemporalQueries.localDate(); // Query a LocalDate LocalDate ld = LocalDate.now(); TemporalUnit precision = ld.query(precisionQuery); LocalDate queryDate = ld.query(localDateQuery); System.out.println("Precision of LocalDate: " + precision); System.out.println("LocalDate of LocalDate: " + queryDate); // Query a LocalTime LocalTime lt = LocalTime.now(); precision = lt.query(precisionQuery); queryDate = lt.query(localDateQuery); System.out.println("Precision of LocalTime: " + precision); System.out.println("LocalDate of LocalTime: " + queryDate); // Query a ZonedDateTime ZonedDateTime zdt = ZonedDateTime.now(); precision = zdt.query(precisionQuery); queryDate = zdt.query(localDateQuery); System.out.println("Precision of ZonedDateTime: " + precision); System.out.println("LocalDate of ZonedDateTime:...

Java 日期时间调整器-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 日期时间调整器

Java日期时间调整器 我们可能要将日期和时间调整为该月的第一个星期一或下一个星期二。 我们可以使用 TemporalAdjuster 界面来调整日期和时间。接口有一个方法, adjustInto(),它接受一个时间并返回一个时间。 TemporalAdjusters 类包含返回不同类型的预定义日期调整器的静态方法。 以下代码显示了如何计算2014年1月1日之后的第一个星期一: import java.time.DayOfWeek; import java.time.LocalDate; import java.time.Month; import java.time.temporal.TemporalAdjusters; public class Main { public static void main(String[] args) { LocalDate ld1 = LocalDate.of(2014, Month.JANUARY, 1); LocalDate ld2 = ld1.with(TemporalAdjusters.next(DayOfWeek.MONDAY)); System.out.println(ld1); System.out.println(ld2); } } 上面的代码生成以下结果。 TemporalAdjusters TemporalAdjusters定义了一些可用于调整日期的有用方法。 next(DayOfWeek dayOfWeek) nextOrSame(DayOfWeek dayOfWeek) previous(DayOfWeek dayOfWeek) previousOrSame(DayOfWeek dayOfWeek) firstInMonth(DayOfWeek dayOfWeek) lastInMonth(DayOfWeek dayOfWeek) dayOfWeekInMonth(int ordinal, DayOfWeek dayOfWeek) firstDayOfMonth() lastDayOfMonth() firstDayOfYear() lastDayOfYear() firstDayOfNextMonth() firstDayOfNextYear() ofDateAdjuster(UnaryOperator<LocalDate> dateBasedAdjuster) 以下代码显示了如何使用 dayOfWeekInMonth 。 import java.time.DayOfWeek; import java.time.LocalDate; import java.time.Month; import java.time.temporal.TemporalAdjusters; public class Main { public static void main(String[] args) { LocalDate ld1 = LocalDate.of(2014, Month.MAY, 21); System.out.println(ld1); LocalDate ld2 = ld1.with(TemporalAdjusters.dayOfWeekInMonth(5, DayOfWeek.SUNDAY)); System.out.println(ld2); } } 上面的代码生成以下结果。 自定义调整 您可以使用ofDateAdjuster()方法为LocalDate创建自己的日期调整器。 以下代码创建日期调整程序。 import java.time.LocalDate; import java.time.temporal.TemporalAdjuster; import java.time.temporal.TemporalAdjusters; public class Main { public static...

Java Chrono现场单元-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java Chrono现场单元

Java日期时间 – Java Chrono现场单元 ChronoField ChronoField枚举定义了一组标准字段,如 AMPM_OF_DAY,DAY_OF_MONTH,DAY_OF_WEEK,DAY_OF_YEAR,ERA,HOUR_OF_DAY,MINUTE_OF_HOUR,MONTH_OF_YEAR,年年约SECOND_OF_MINUTE,YEAR_OF_ERA 。 以下代码显示了如何使用 ChronoField 从datetime中提取字段值。 import java.time.LocalDateTime; import java.time.temporal.ChronoField; public class Main { public static void main(String[] args) { LocalDateTime now = LocalDateTime.now(); System.out.println(now.get(ChronoField.YEAR)); System.out.println(now.get(ChronoField.MONTH_OF_YEAR)); System.out.println(now.get(ChronoField.DAY_OF_MONTH)); System.out.println(now.get(ChronoField.HOUR_OF_DAY)); System.out.println(now.get(ChronoField.HOUR_OF_AMPM)); System.out.println(now.get(ChronoField.AMPM_OF_DAY)); } } 上面的代码生成以下结果。 例2 以下代码显示了如何检查数据时间对象是否支持ChronoField。 import java.time.LocalDateTime; import java.time.temporal.ChronoField; public class Main { public static void main(String[] args) { LocalDateTime now = LocalDateTime.now(); System.out.println(now.isSupported(ChronoField.YEAR)); System.out.println(now.isSupported(ChronoField.HOUR_OF_DAY)); System.out.println(ChronoField.YEAR.isSupportedBy(now)); System.out.println(ChronoField.HOUR_OF_DAY.isSupportedBy(now)); } } 上面的代码生成以下结果。 ChronoUnit ChronoUnit枚举表示时间单位。 它包含以下常量:CENTURIES,DAYS,DECADES,ERAS,FOREVER,HALF_DAYS,HOURS,MICROS,MILLENNIA,MILLIS,MINUTES,MONTHS,NANOS,SECONDS,WEEKS和YEARS。 以下代码显示了如何使用ChronoUnit枚举常量。 import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; public class Main { public static void main(String[] args) { LocalDateTime now = LocalDateTime.now(); // Get the date time 10 days ago LocalDateTime localDateTime1 = now.minus(10, ChronoUnit.DAYS); System.out.println(localDateTime1); } } 上面的代码生成以下结果。

Java 时钟周期-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 时钟周期

Java日期时间 – Java时钟周期 时钟 Clock 类表示真实世界的时钟。 我们可以从Clock类中访问时区中的当前时间,日期和时间。 我们可以为系统默认时区创建一个时钟,如下所示。 Clock clock = Clock.systemDefaultZone(); 要为指定的时区创建时钟。 ZoneId z = ZoneId.of("America/Los_Angeles"); Clock clock2 = Clock.system(z); 要从时钟获取当前的时间,日期和时间,请使用datetime相关类的now(Clock c)方法。 import java.time.Clock; import java.time.Instant; import java.time.LocalDate; import java.time.ZonedDateTime; public class Main { public static void main(String[] args) { Clock clock = Clock.systemDefaultZone(); Instant instant1 = clock.instant(); System.out.println(instant1); Instant instant2 = Instant.now(clock); System.out.println(instant2); LocalDate localDate = LocalDate.now(clock); System.out.println(localDate); ZonedDateTime zoneDateTime = ZonedDateTime.now(clock); System.out.println(zoneDateTime); } } 上面的代码生成以下结果。 周期 周期是以年,月和日为单位的时间跨度。 支持负周期。 持续时间也是以秒和纳秒为单位测量的时间跨度。 持续时间表示机器的精确纳秒数。一个时期更适合人类。 1天,2个月,3天,4个月和5天都是周期的实例。2个月期间可能意味着不同的天数,具体取决于不同的月份。 我们可以使用以下方法创建 Period 。 static Period of(int years,int months, int days) static Period ofDays(int days) static Period ofMonths(int months) static Period ofWeeks(int weeks) static Period ofYears(int years) 以下代码显示了如何创建Period。 import java.time.Period; public class Main { public static void main(String[] args) { Period p1 = Period.of(2, 3, 5); //...

Java 分区日期时间-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 分区日期时间

Java日期时间 – Java分区日期时间 分区日期时间 ZonedDateTime 类表示带有时区规则的日期时间。 ZonedDateTime 结合了 LocalDateTime 和 ZoneId 。 下面说明如何从 LocalDateTime 创建 ZonedDateTime 。 import java.time.LocalDateTime; import java.time.Month; import java.time.ZoneId; import java.time.ZonedDateTime; public class Main { public static void main(String[] args) { ZoneId usCentral = ZoneId.of("America/Chicago"); LocalDateTime localDateTime = LocalDateTime.of(2014, Month.MAY, 21, 9, 30); System.out.println(localDateTime); ZonedDateTime zonedDateTime = ZonedDateTime.of(localDateTime, usCentral); System.out.println(zonedDateTime); } } 上面的代码生成以下结果。 注意 由于夏令时更改,可能会发生时区中的本地时间轴上的间隙或重叠。 当时钟向前或向后移动一个小时时,会有时间上的间隙或重叠 如果时间落在间隙的中间,则时间向前移动与间隙相同的量。 如果时间落在重叠的中间,则时间有效。 默认情况下,使用较早版本。 withEarlierOffsetAtOverlap()和fromLaterOffsetAtOverlap()从ZonedDateTime让您选择所需的区域偏移量,如果时间落在重叠。 例2 以下代码显示ZonedDateTime,其中时间落在间隙和重叠中。 import java.time.LocalDateTime; import java.time.Month; import java.time.ZoneId; import java.time.ZonedDateTime; public class Main { public static void main(String[] args) { ZoneId usChicago = ZoneId.of("America/Chicago"); // 2014-03-09T02:30 did not exist in America/Chicago time zone LocalDateTime ldt = LocalDateTime.of(2014, Month.MARCH, 9, 2, 30); ZonedDateTime zdt = ZonedDateTime.of(ldt, usChicago); System.out.println(zdt); // 2013-10-03T01:30 existed twice in America/Chicago time zone LocalDateTime...

Java 偏移日期时间-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 偏移日期时间

Java日期时间 – Java偏移日期时间 偏移时间 OffsetTime表示具有相对于UTC的固定区偏移的时间。 OffsetTime组合LocalTime和ZoneOffset。 系统默认时区用于在使用now()的偏移时间时获取区域偏移值。 以下代码显示如何创建偏移时间。 import java.time.OffsetTime; import java.time.ZoneOffset; public class Main { public static void main(String[] args) { // current offset time OffsetTime ot1 = OffsetTime.now(); System.out.println("Current offset time: " + ot1); // a zone offset +01:30 ZoneOffset offset = ZoneOffset.ofHoursMinutes(1, 30); OffsetTime offsetTime = OffsetTime.of(16, 40, 28, 0, offset); System.out.println(offsetTime); } } 上面的代码生成以下结果。 偏移日期时间 OffsetDateTime表示datetime,固定区偏移UTC。 OffsetDateTime组合LocalDateTime和ZoneOffset。 我们可以从偏移日期和时间提取本地日期和时间。 系统默认时区用于在偏移日期和时间使用now()时获取区域偏移值。 以下代码显示如何创建偏移日期时间。 import java.time.LocalDate; import java.time.LocalTime; import java.time.OffsetDateTime; import java.time.ZoneOffset; public class Main { public static void main(String[] args) { // Get the current offset datetime OffsetDateTime OffsetDateTime odt1 = OffsetDateTime.now(); // Create an offset datetime OffsetDateTime odt2 = OffsetDateTime.of(2012, 5, 11, 18, 10, 30, 0, ZoneOffset.UTC); // Get the local date and time from the offset datetime...