Java1.0 support for dates and times can only depend on the Java.util.Date class, the start of the year is 1900 you, the beginning of the month is calculated from 0. Its return value contains the default urban CET for the JVM, which is central European time. Use the Java.util.Calendar class instead of date in Java1.1. DateFormat that both format and parse dates exist only in date, and threads are unsafe. Both date and calendar are mutable. JAVA8 integrates many joda-time features in the java.time.
The Java.time provides localdate,localtime,instant,duration and period.
Localdate and LocalTime
Examples of localdate and localtime are immutable objects, Localdate provides only simple dates, does not contain time information for the current day, and does not come with any time zone-related information. The localtime only provides time.
Temporalfield is an interface that defines the value of a field that accesses a temporal object. The Chronofield enumeration implements this interface, and you can use Localdate.get (Chronofield) to get the value of an enumeration element.
int year = Localdate.now (). get (Chronofield.year);
Both Localdate and localtime can parse the string creation that represents them through the parse () method. You can also pass a datetimeformatter to the parse () method, which is a replacement for Java.util.DateFormat. The two parse methods will throw a Datetimeparseexception exception once the passed string argument cannot be parsed into a legitimate localdate or LocalTime object.
Localdate date = Localdate.parse ("2017-07-24");
LocalTime time = Localtime.parse ("12:25:05");
LocalDateTime
LocalDateTime is a combination of localdate and localtime, indicating the date and time, but without the time zone. You can localdate and localtime can create a LocalDateTime object through the Attime () and Atdate () methods, or call LocalDateTime's Tolocaldate () and ToLocalTime () method to generate Localdate and LocalTime objects.
LocalDateTime dateTime = Localdatetime.of (, month.july, 24, 11, 11, 11);
Localdate date = Localdate.now ();
LocalTime time = Localtime.now ();
LocalDateTime dateTime1 = localdatetime.of (date, time);
LocalDateTime dateTime2 = date.attime (11, 11);
LocalDateTime DateTime3 = Date.attime (time);
LocalDateTime dateTime4 = time.atdate (date);
Localdate date1 = Datetime.tolocaldate ();
LocalTime time1 = Datetime1.tolocaltime ();
From the computer's point of view, the most natural form of modeling time is a single large integer representing a point on a duration period. The way the Java.time.Instant class models time is calculated as the number of seconds that the UNIX has experienced in the first time. You can create an instance of the class by passing a static factory method Ofepochsecond A value that represents the description, and it can also receive the second parameter value in seconds, adjusting the parameters passed in as described. The overloaded version adjusts the nanosecond parameter to ensure that the saved nanosecond shards are adjusted in 0 to 999999 of the parameters passed in as the number of seconds. The instant class supports the static factory method now, which can help you get the timestamp of the current moment.
Instant.ofepochsecond (3);
Instant.ofepochsecond (2, 1000000000); 2s plus 1s
Instant.ofepochsecond (2,-1000000000); 2s ago 1s
Duration or period
The temporal interface defines how to read and manipulate the values of the objects that are modeled for time. The static factory between of the Duration class can calculate duration between two temporal objects.
Duration D1 = Duration.between (time1, time2);
Duration D2 = Duration.between (datetime1, datetime2);
Duration d3 = Duration.between (Instant1, instant1);
If you attempt to create a duration between instant and LocalDateTime objects, the datetimeexception exception is triggered.
If you need to model multiple times in years, months, or days, you can use the period class.
Period tendays = Period.between (Localdate.of (2014, 3, 18)), Localdate.of (3);
Static between creates a interval between two points in time
The static from is created by a temporary point in time interval
Static of the interval instance created by its components
Static Parse creates an instance of interval from a string
AddTo creates a copy of the interval and overlays it to a specified temporal object
Get reads a copy of the interval and overlays it to a specified temporal object
Isnegative checks if the interval is negative and does not contain 0
Iszero Check whether the interval is often 0
Minus creates a copy of the interval by subtracting a certain amount of time
Multipliedplay to multiply the value of interval by a scalar to create a copy of the interval
Negated create the interval copy in a way that ignores a certain amount of time
Plus creates a copy of the interval in a way that adds a specified amount of time
Substractfrom subtracts the interval from the specified temporal object
The simplest way to create a modified version of a Localdate object is to Withattribute the method. The Withattribute method creates a copy of the object and modifies its properties as needed. By using the Get and with methods, you can separate the read and modify temporal object values. If the temporal object does not support the requested access field, it throws a Unsupportedtemporaltypeexception exception.
Localdate date1 = Localdate.of (2014, 3, 18);
Localdate date2 = date1.withyear (2011);
Localdate Date3 = Date2.withdayofmonth (25);
Localdate date4 = Date3.with (chronofield.month_of_year, 9);
A common method for date-time classes that represent points in time
Static from creates an object instance from an incoming temporal object
Static now creates temporal objects based on system clock
Static of tin plated by temporal you've loved a part of you. Create an instance of the object
Static Parse creates an instance of the temporal object from a string
Atoffset combining the Temporal object with a time zone offset
Atzone combining the Temporal object with a time zone
Format converts a Temporal object to a string using a specified format
Get reads the value of a part of a temporal object
Minus creates a copy of the temporal object by subtracting the value of the current temporal object by a certain amount of time to create the copy
Plus creates a copy of the temporal object, creating the copy by adding the value of the current temporal object to a top length
With the temporal object as a template, modify some states to create a copy of the object
Temporaladjuster
The with method of Localdate can accept a Temporaladjuster object.
Localdate date1 = Localdate.of (2014, 3, 18);
Localdate date2 = Date1.with (Nextorsame (dayofweek.sunday));
Factory methods in the Temporaladjuster class
Dayofweekinmonth creates a new date whose value is the day ordinal of the week in the same one month
Firstdayofmonth creates a new date whose value is the first day of the month
Firstdayofnextmonth creates a new date whose value is the first day of next month
Firstdayofnextyear creates a new date, its value is the first day of next year
Firstdayofyear creates a new date whose value is the first day of the year
Firstinmonth creates a new date whose value is the first day of the month
Lastdayofmonth creates a new date whose value is the last day of the month
Lastdayofnextmonth creates a new date whose value is the last day of the next month
Lastdayofnextyear creates a new date, its value is the last day of next year
Lastdayofyear creates a new date with a value of the last day of the year
Lastinmonth creates a new date with a value of the same one month, the last one that meets the day of the week
Next/previous Create a new date and set it to the date after the date is adjusted or adjusted before the first one meets the specified week requirement
Nextorsame/previousorsame Create a new date and set its value to date adjusted or adjusted before the first date that meets the specified day of the week, and if that date has been met, return the object directly
@FunctionalInterface
public interface temporaladjuster{
Temporal adjustinto (temporal temporal);
}
Public classNextworkingdayImplementstemproaladjuster{ Publictemporal adjustinto (temporal temporal) {DayOfWeek Dow=Dayofweek.of (Temporal.get (Chronofield.day_of_week)); intDayofadd = 1; if(Dow = =dayofweek.friday) Dayofadd= 3; Else if(Dow = =dayofweek.saturday) {Dayofadd= 2; } returnTemporal.plus (Daytoadd, chronounit.days); }}date= Date.with (Temporal- { Publictemporal adjustinto (temporal temporal) {DayOfWeek Dow=Dayofweek.of (Temporal.get (Chronofield.day_of_week)); intDayofadd = 1; if(Dow = =dayofweek.friday) Dayofadd= 3; Else if(Dow = =dayofweek.saturday) {Dayofadd= 2; } returnTemporal.plus (Daytoadd, chronounit.days);}); Temporaladjuster Nextworkingday=Temporaladjuster.ofdateadjust (Temporal-{DayOfWeek Dow=Dayofweek.of (Temporal.get (Chronofield.day_of_week)); intDayofadd = 1; if(Dow = =dayofweek.friday) Dayofadd= 3; Else if(Dow = =dayofweek.saturday) {Dayofadd= 2; } returnTemporal.plus (Daytoadd, chronounit.days);}); Date= Date.with (Nextworkingday)
Java.time.format is used for formatting and parsing date-time. The DateTimeFormatter instance is used to create a string that represents a specific date or time in a certain format, and is thread safe.
Localdate date = Localdate.of (2017, 8, 9);
String S1 = Data.format (datetimeformatter.basic_iso_date); 20170809
String s2 = Data.format (datetimeformatter.iso_local_date); 2017-08-09
Localdate date1 = Localdate.parse ("20170809", datetimeformatter.basic_iso_date);
The Datetimeformatter.ofpattern () method can create a formatter in a specific pattern, and the Ofpattern () method can also create a formatter for a locale
DateTimeFormatter formatter = Datetimeformatter.ofpattern ("dd/mm/yyyy");
DateTimeFormatter Italianformatter = Datetimeformatter.ofpattern ("D. MMMM yyyy", Locale.italian);
The purpose of java.time.ZoneId is to make it unnecessary for you to deal with complex and cumbersome time zones. The specified urban rules are obtained by calling Zoneid.getrules (). Each specific ZoneID object is identified by a region ID.
ZoneID Romezone = Zoneid.of ("Europe/rome");
The region ID is in the "area/city" format, and the settings for these regional collections are provided by the time zone database of the Internet number allocation agency IANA. You can convert an old time zone object to ZoneID through Tozoneid. ZoneID integration with Localdate,localdatetime or instant to get Zoneddatetime instances
ZoneID ZoneID = Zoneid.getdefault (). Tozoneid ();
Localdate date = Localdate.of (Month.march, 10);
Zoneddatetime ZDT = Date.atstartofday (ZoneID);
LocalDateTime datetime = Localdatetime.of (Month.march, 10, 18, 13, 45);
ZDT = Datetime.atzone (Romezone);
Instant Instant = Instant.now ();
ZDT = Instant.atzone (Romezone);
Instant instantfromdatetime = datetime.toinstant (Romezone);
LocalDateTime datetimefrominstant = localdatetime.ofinstant (instant, romezone);
The ISO-8601 calendar system is the implementation standard of the World civilized calendar system. JAVA8 also offers 4 other calendar systems. They are thaibuddhistdate,minguodate,japanesedate and hijrahdate, respectively. These classes and localdate all implement the Chronolocaldate interface.
Localdate date = Localdate.of (Month.march, 10);
Japenesedate JDate = japenesedate.from (date);
Chronology japanesechronology = Chronology.oflocale (Locale.janpan);
Chronolocaldate now = Japanesechronology.datenow ();
Dates and APIs