En la clase ZonedDateTime, hay dos tipos de método with() según los parámetros que se le pasen.
con (ajustador TemporalAdjuster)
with(TemporalAdjuster ajustador) método de la clase ZonedDateTime utilizado para ajustar esta fecha y hora y después del ajuste devuelve la copia de la fecha y hora ajustada. El ajuste se lleva a cabo utilizando el objeto de estrategia de ajustador especificado. Esta instancia de ZonedDateTime es inmutable y no se ve afectada por esta llamada de método.
Sintaxis:
public ZonedDateTime with(TemporalAdjuster adjuster)
Parámetros: Este método acepta ajustador como parámetro que es el ajustador a utilizar.
Valor devuelto: este método devuelve un ZonedDateTime basado en esto con el ajuste realizado.
Excepción: este método arroja las siguientes excepciones:
- DateTimeException : si no se puede realizar el ajuste.
- ArithmeticException : si se produce un desbordamiento numérico.
Los siguientes programas ilustran el método with():
Programa 1:
// Java program to demonstrate // ZonedDateTime.with() method import java.time.*; import java.time.temporal.*; public class GFG { public static void main(String[] args) { // create a ZonedDateTime object ZonedDateTime zoneddatetime = ZonedDateTime.parse( "2018-12-06T19:21:12.123+05:30[Asia/Calcutta]"); // print instance System.out.println("ZonedDateTime before" + " adjustment: " + zoneddatetime); // apply with method of ZonedDateTime class ZonedDateTime zt = zoneddatetime .with(Month.SEPTEMBER) .with(TemporalAdjusters.firstDayOfMonth()); // print instance System.out.println("ZonedDateTime after" + " adjustment: " + zt); } }
ZonedDateTime before adjustment: 2018-12-06T19:21:12.123+05:30[Asia/Calcutta] ZonedDateTime after adjustment: 2018-09-01T19:21:12.123+05:30[Asia/Calcutta]
with(campo TemporalField, long newValue)
with(TemporalField field, long newValue) método de la clase ZonedDateTime que se usa para establecer el campo especificado en un nuevo valor y devuelve la copia de la nueva fecha y hora. Este método se puede usar para cambiar cualquier campo admitido, como el año, el mes o día del mes. Se lanza una excepción si no es posible establecer el nuevo valor debido a que el campo no es compatible o por alguna otra razón.
En algunos casos, cambiar el campo especificado puede hacer que la fecha y hora resultante deje de ser válida, como cambiar el mes del 31 de enero a febrero, lo que invalidaría el día del mes. En casos como este, el campo se encarga de resolver la fecha. Por lo general, elegirá la fecha válida anterior, que sería el último día válido de febrero en este ejemplo. Esta instancia de ZonedDateTime es inmutable y no se ve afectada por esta llamada de método.
Sintaxis:
public ZonedDateTime with(TemporalField field, long newValue)
Parámetros: este método acepta campo, que es el campo que se establecerá en el resultado, y newValue, que es el nuevo valor del campo en el resultado como parámetros.
Valor devuelto: este método devuelve un ZonedDateTime basado en esto con el conjunto de campos especificado.
Excepción: este método arroja las siguientes excepciones:
- DateTimeException : si no se puede realizar el ajuste.
- UnsupportedTemporalTypeException : si el campo no es compatible.
- ArithmeticException : si se produce un desbordamiento numérico.
Los siguientes programas ilustran el método with():
Programa 1:
// Java program to demonstrate // ZonedDateTime.with() method import java.time.*; import java.time.temporal.*; public class GFG { public static void main(String[] args) { // create a ZonedDateTime object ZonedDateTime zoneddatetime = ZonedDateTime.parse( "2018-12-06T19:21:12.123+05:30[Asia/Calcutta]"); // print instance System.out.println("ZonedDateTime before" + " applying method: " + zoneddatetime); // apply with method of ZonedDateTime class ZonedDateTime zt = zoneddatetime.with( ChronoField.HOUR_OF_DAY, 13); // print instance System.out.println("ZonedDateTime after" + " applying method: " + zt); } }
ZonedDateTime before applying method: 2018-12-06T19:21:12.123+05:30[Asia/Calcutta] ZonedDateTime after applying method: 2018-12-06T13:21:12.123+05:30[Asia/Calcutta]
Referencias:
https://docs.oracle.com/javase/10/docs/api/java/time/ZonedDateTime.html#with(java.time.temporal.TemporalField, largo)
https://docs.oracle.com/ javase/10/docs/api/java/time/ZonedDateTime.html#with(java.time.temporal.TemporalAdjuster)
Publicación traducida automáticamente
Artículo escrito por AmanSingh2210 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA