───────┬──────────────────────────────────────────────────────────────────────── │ 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 │ @NotBlank 28 │ @Size(min=6, max=8) 29 │ String background; // 背景色 30 │ 31 │ public ToDo toEntity() { 32 │ ToDo t = new ToDo(); 33 │ t.setTitle(title); 34 │ t.setCreatedAt(new Date()); 35 │ t.setDone(false); 36 │ t.setDueAt(getDueDate()); 37 │ t.setBackground(background); 38 │ return t; 39 │ } 40 │ 41 │ public Date getDueDate() { 42 │ if (due == null) { 43 │ return null; 44 │ } 45 │ return toDate(due); 46 │ } 47 │ 48 │ private Date toDate(LocalDateTime ldt) { 49 │ ZoneId id = ZoneId.systemDefault(); 50 │ ZonedDateTime zdt = ZonedDateTime.of(ldt, id); 51 │ Instant instant = zdt.toInstant(); 52 │ return Date.from(instant); 53 │ } 54 │ } ───────┴────────────────────────────────────────────────────────────────────────