Java8 операции с датой и временем Java8 операции с датой и временем

Java8 дата и время операции

 

1. Введение

  До Java 8 разработчики критиковали API даты и времени, в том числе: java.util.Date - тип переменной, SimpleDateFormat - не поточно-ориентированный и другие проблемы. Поэтому Java8 представила новый набор API обработки даты и времени, новый API основан на стандартной календарной системе ISO.

    

Во-вторых, дата

  Пример 1: Получить сегодняшнюю дату

    LocalDate в Java 8 используется для представления сегодняшней даты. В отличие от java.util.Date, у него есть только дата и нет времени.

public static void main (String [] args) { 
  LocalDate date = LocalDate.now (); 
  System.out.println ("当前 日期 =" + дата); 
}

 

  Пример 2: Построить указанную дату

    Вызовите фабричный метод LocalDate.of () для создания любой даты. Этот метод должен передать год, месяц и день в качестве параметров и вернуть соответствующий экземпляр LocalDate. Преимущество этого метода состоит в том, что больше нет ошибок проектирования старого API, например, год начинается в 1900 году, месяц начинается с 0

public static void main (String [] args) { 
    LocalDate date = LocalDate.of (2000, 1, 1); 
    System.out.println ("千禧 年 =" + дата); 
}

 

  Пример 3: Получить информацию о году, месяце и дне

public static void main (String [] args) { 
    LocalDate date = LocalDate.now (); 
    System.out.printf ("年 =% d , 月 =% d , 日 =% d", date.getYear (), date.getMonthValue (), date.getDayOfMonth ()); 
}

 

  Пример 4: Сравните две даты на равенство

public static void main (String [] args) { 
    LocalDate now = LocalDate.now (); 
    Дата LocalDate = LocalDate.of (2018, 9, 24); 
    System.out.println ("日期 是否 相等 =" + now.equals (date)); 
}

 

3. Время знать

  Пример: получить текущее время

    LocalTime в Java 8 используется для указания времени суток. В отличие от java.util.Date, у него есть только время и дата.

public static void main (String [] args) { 
    LocalTime time = LocalTime.now (); 
    System.out.println ("当前 时间 =" + время); 
}

 

В-четвертых, сравнение и расчет

  Пример 1: расчет даты и времени

    Java8 предоставляет новый метод plusXxx () для вычисления значения приращения даты и времени, заменяя оригинальный метод add (). Новый API вернет совершенно новый пример даты и времени, который должен быть получен с новым объектом.

Скопировать код
    public static void main (String [] args) {
         
     // 增量 增量 LocalTime time = LocalTime.now (); LocalTime newTime = time.plusHours (2); System.out.println ("newTime =" + newTime);      // 增量 增量 LocalDate date = LocalDate.now (); LocalDate newDate = date.plus (1, ChronoUnit.WEEKS); System.out.println ("newDate =" + newDate); }
Скопировать код

 

  Пример 2: Сравнение даты и времени

    Java8 предоставляет isAfter () и isBefore () для оценки сравнения между текущей датой и временем и указанной датой и временем

Скопировать код
    public static void main (String [] args) { 
        
        LocalDate now = LocalDate.now (); 
        
        LocalDate date1 = LocalDate.of (2000, 1, 1); 
        if (now.isAfter (date1)) { 
            System.out.println ( « 
        Миллениум прошел»); 
        } 
        LocalDate date2 = LocalDate.of (2020, 1, 1); 
        if (now.isBefore (date2)) { 
            System.out.println («2020 еще не наступил»); 
        } 
        
    }
Скопировать код

 

V. Часовой пояс

  Пример: создание даты и времени с часовым поясом

    Java 8 разделяет не только дату и время, но и часовой пояс. Теперь существует ряд отдельных классов, таких как ZoneId для работы с конкретным часовым поясом и класс ZoneDateTime для представления времени в определенном часовом поясе.

Скопировать код
    public static void main (String [] args) { 
        
        // 上海 时间
        ZoneId shanghaiZoneId = ZoneId.of ("Азия / Шанхай"); 
        ZonedDateTime shanghaiZonedDateTime = ZonedDateTime.now (shanghaiZoneId); 
        
        // 时间 时间
        ZoneId tokyoZoneId = ZoneId.of ("Азия / Токио"); 
        ZonedDateTime tokyoZonedDateTime = ZonedDateTime.now (tokyoZoneId); 
        
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern ("гггг-мм-дд ЧЧ: мм: сс"); 
        System.out.println ("上海 时间:" + shanghaiZonedDateTime.format (formatter)); 
        System.out.println ("东京 时间:" + tokyoZonedDateTime.format (formatter)); 
        
    }
Скопировать код

 

Шесть, формат

  Пример 1. Разбор и форматирование дат с использованием предопределенных форматов.

Скопировать код
  public static void main (String [] args) { 
        
        // 
        Анализ даты String dateText = "20180924"; 
        LocalDate date = LocalDate.parse (dateText, DateTimeFormatter.BASIC_ISO_DATE); 
        System.out.println ("Дата после формата =" + date); 
        
        // формат даты 
        dateText = date.format (DateTimeFormatter.ISO_DATE); 
        System.out.println ("dateText =" + dateText); 
        
    }
Скопировать код

 

  Пример 2: преобразование даты и строки

Скопировать код
    public static void main (String [] args) { 
        
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern ("гггг-ММ-дд ЧЧ: мм: сс"); 
        
        // 字符串 时间 转 字符串
        LocalDateTime now = LocalDateTime.now (); 
        String nowText = now.format (formatter); 
        System.out.println ("nowText =" + nowText); 
        
        // 字符串 转 日期 时间
        String datetimeText = "1999-12-31 23:59:59"; 
        LocalDateTime datetime = LocalDateTime.parse (datetimeText, форматтер); 
        System.out.println (DateTime); 
        
    }
Скопировать код

 

Семь, родственное описание

Скопировать код
Мгновенная отметка времени 
Длительность Продолжительность, разница 
во времени LocalDate содержит только дату, например: 2018-09-24 
LocalTime содержит только время, например: 10:32:10 
LocalDateTime содержит дату и время, например: 2018-09-24 10:32:10 
Периодический часовой пояс 
ZoneOffset смещение часового пояса, например: +8: 00 
ZonedDateTime date time 
Часы с часовым поясом , могут использоваться для получения текущей метки времени 
java.time.format.DateTimeFormatter класс форматирования времени
Скопировать код

1. Введение

  До Java 8 разработчики критиковали API даты и времени, в том числе: java.util.Date - тип переменной, SimpleDateFormat - не поточно-ориентированный и другие проблемы. Поэтому Java8 представила новый набор API обработки даты и времени, новый API основан на стандартной календарной системе ISO.

    

Во-вторых, дата

  Пример 1: Получить сегодняшнюю дату

    LocalDate в Java 8 используется для представления сегодняшней даты. В отличие от java.util.Date, у него есть только дата и нет времени.

public static void main (String [] args) { 
  LocalDate date = LocalDate.now (); 
  System.out.println ("当前 日期 =" + дата); 
}

 

  Пример 2: Построить указанную дату

    Вызовите фабричный метод LocalDate.of () для создания любой даты. Этот метод должен передать год, месяц и день в качестве параметров и вернуть соответствующий экземпляр LocalDate. Преимущество этого метода состоит в том, что больше нет ошибок проектирования старого API, например, год начинается в 1900 году, месяц начинается с 0

public static void main (String [] args) { 
    LocalDate date = LocalDate.of (2000, 1, 1); 
    System.out.println ("千禧 年 =" + дата); 
}

 

  Пример 3: Получить информацию о году, месяце и дне

public static void main (String [] args) { 
    LocalDate date = LocalDate.now (); 
    System.out.printf ("年 =% d , 月 =% d , 日 =% d", date.getYear (), date.getMonthValue (), date.getDayOfMonth ()); 
}

 

  Пример 4: Сравните две даты на равенство

public static void main (String [] args) { 
    LocalDate now = LocalDate.now (); 
    Дата LocalDate = LocalDate.of (2018, 9, 24); 
    System.out.println ("日期 是否 相等 =" + now.equals (date)); 
}

 

3. Время знать

  Пример: получить текущее время

    LocalTime в Java 8 используется для указания времени суток. В отличие от java.util.Date, у него есть только время и дата.

public static void main (String [] args) { 
    LocalTime time = LocalTime.now (); 
    System.out.println ("当前 时间 =" + время); 
}

 

В-четвертых, сравнение и расчет

  Пример 1: расчет даты и времени

    Java8 предоставляет новый метод plusXxx () для вычисления значения приращения даты и времени, заменяя оригинальный метод add (). Новый API вернет совершенно новый пример даты и времени, который должен быть получен с новым объектом.

Скопировать код
    public static void main (String [] args) {
         
     // 增量 增量 LocalTime time = LocalTime.now (); LocalTime newTime = time.plusHours (2); System.out.println ("newTime =" + newTime);      // 增量 增量 LocalDate date = LocalDate.now (); LocalDate newDate = date.plus (1, ChronoUnit.WEEKS); System.out.println ("newDate =" + newDate); }
Скопировать код

 

  Пример 2: Сравнение даты и времени

    Java8 предоставляет isAfter () и isBefore () для оценки сравнения между текущей датой и временем и указанной датой и временем

Скопировать код
    public static void main (String [] args) { 
        
        LocalDate now = LocalDate.now (); 
        
        LocalDate date1 = LocalDate.of (2000, 1, 1); 
        if (now.isAfter (date1)) { 
            System.out.println ( « 
        Миллениум прошел»); 
        } 
        LocalDate date2 = LocalDate.of (2020, 1, 1); 
        if (now.isBefore (date2)) { 
            System.out.println («2020 еще не наступил»); 
        } 
        
    }
Скопировать код

 

V. Часовой пояс

  Пример: создание даты и времени с часовым поясом

    Java 8 разделяет не только дату и время, но и часовой пояс. Теперь существует ряд отдельных классов, таких как ZoneId для работы с конкретным часовым поясом и класс ZoneDateTime для представления времени в определенном часовом поясе.

Скопировать код
    public static void main (String [] args) { 
        
        // 上海 时间
        ZoneId shanghaiZoneId = ZoneId.of ("Азия / Шанхай"); 
        ZonedDateTime shanghaiZonedDateTime = ZonedDateTime.now (shanghaiZoneId); 
        
        // 时间 时间
        ZoneId tokyoZoneId = ZoneId.of ("Азия / Токио"); 
        ZonedDateTime tokyoZonedDateTime = ZonedDateTime.now (tokyoZoneId); 
        
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern ("гггг-мм-дд ЧЧ: мм: сс"); 
        System.out.println ("上海 时间:" + shanghaiZonedDateTime.format (formatter)); 
        System.out.println ("东京 时间:" + tokyoZonedDateTime.format (formatter)); 
        
    }
Скопировать код

 

Шесть, формат

  Пример 1. Разбор и форматирование дат с использованием предопределенных форматов.

Скопировать код
  public static void main (String [] args) { 
        
        // 
        Анализ даты String dateText = "20180924"; 
        LocalDate date = LocalDate.parse (dateText, DateTimeFormatter.BASIC_ISO_DATE); 
        System.out.println ("Дата после формата =" + date); 
        
        // формат даты 
        dateText = date.format (DateTimeFormatter.ISO_DATE); 
        System.out.println ("dateText =" + dateText); 
        
    }
Скопировать код

 

  Пример 2: преобразование даты и строки

Скопировать код
    public static void main (String [] args) { 
        
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern ("гггг-ММ-дд ЧЧ: мм: сс"); 
        
        // 字符串 时间 转 字符串
        LocalDateTime now = LocalDateTime.now (); 
        String nowText = now.format (formatter); 
        System.out.println ("nowText =" + nowText); 
        
        // 字符串 转 日期 时间
        String datetimeText = "1999-12-31 23:59:59"; 
        LocalDateTime datetime = LocalDateTime.parse (datetimeText, форматтер); 
        System.out.println (DateTime); 
        
    }
Скопировать код

 

Семь, родственное описание

Скопировать код
Мгновенная отметка времени 
Длительность Продолжительность, разница 
во времени LocalDate содержит только дату, например: 2018-09-24 
LocalTime содержит только время, например: 10:32:10 
LocalDateTime содержит дату и время, например: 2018-09-24 10:32:10 
Периодический часовой пояс 
ZoneOffset смещение часового пояса, например: +8: 00 
ZonedDateTime date time 
Часы с часовым поясом , могут использоваться для получения текущей метки времени 
java.time.format.DateTimeFormatter класс форматирования времени
Скопировать код

рекомендация

отwww.cnblogs.com/aimei/p/12721548.html