───────┬──────────────────────────────────────────────────────────────────────── │ File: src/main//java/jp/ac/kobe_u/cs/itspecialist/todoapp/dto/ToDoForm.java ───────┼──────────────────────────────────────────────────────────────────────── 1 │ package jp.ac.kobe_u.cs.itspecialist.todoapp.dto; 2 │ 3 │ import java.time.Instant; 4 │ import java.time.LocalDateTime; 5 │ import java.time.ZoneId; 6 │ import java.time.ZonedDateTime; 7 │ import java.util.Date; 8 │ 9 │ import javax.validation.constraints.NotBlank; 10 │ import javax.validation.constraints.Size; 11 │ 12 │ import jp.ac.kobe_u.cs.itspecialist.todoapp.entity.ToDo; 13 │ import lombok.Data; 14 │ import org.springframework.format.annotation.DateTimeFormat; 15 │ 16 │ /** 17 │ * ToDoの入力フォーム 18 │ */ 19 │ @Data 20 │ public class ToDoForm { 21 │ @NotBlank 22 │ @Size(min=1, max=64) 23 │ String title; //ToDo題目 24 │ @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) 25 │ LocalDateTime due; // 期限 26 │ 27 │ public ToDo toEntity() { 28 │ ToDo t = new ToDo(); 29 │ t.setTitle(title); 30 │ t.setCreatedAt(new Date()); 31 │ t.setDone(false); 32 │ t.setDueAt(getDueDate()); 33 │ return t; 34 │ } 35 │ 36 │ public Date getDueDate() { 37 │ if (due == null) { 38 │ return null; 39 │ } 40 │ return toDate(due); 41 │ } 42 │ 43 │ private Date toDate(LocalDateTime ldt) { 44 │ ZoneId id = ZoneId.systemDefault(); 45 │ ZonedDateTime zdt = ZonedDateTime.of(ldt, id); 46 │ Instant instant = zdt.toInstant(); 47 │ return Date.from(instant); 48 │ } 49 │ } ───────┴────────────────────────────────────────────────────────────────────────