HTML 양식에서 수집 한 날짜를 처리하는 데 미친 일이 있습니다. 저는 Spring 4를 백엔드 용으로, Mongodb 용으로 지속성을 사용하고 있습니다.HTML에서 수집 한 날짜와 MongoDB에 저장 한 날짜 처리 방법
내 문제는 Mongo에 날짜가 표시되는 방식입니다. 나는 다음 형식을 원합니다. dd-MM-yyyy. Mongo는 기본적으로 ISO 형식 (yyyy-MM-dd'T'HH : mm : ssZ)을 사용하지만, 새 문서를 삽입하려고 할 때 양식을 채운 후에 날짜가 숫자로 저장된다는 것을 이해합니다. 가치가 있으므로 내 질문은 다음과 같습니다.
- 왜 이런 일이 발생합니까?
- 날짜 형식의 dateOfBirth를 유지하면서 dd-MM-yyyy 형식으로 날짜를 저장할 수 있습니까?
- 그렇지 않은 경우 어떻게 날짜를 표준 ISO 형식으로 만들 수 있습니까?
고객 등급이다
<div class="form">
<h2>Registration</h2>
<form th:action="@{/registration}" method="POST"
th:object="${customer}">
<input type="text" placeholder="Nome" name="firstName"
th:field="*{firstName}" /> <input type="text" placeholder="Cognome"
name="lastName" th:field="*{lastName}" /> <input type="date"
name="dateOfBirth" th:field="*{dateOfBirth}" /> <input type="text"
placeholder="Username" name="username" th:field="*{username}" /> <input
type="email" placeholder="Email" name="email" th:field="*{email}" />
<input type="password" placeholder="Password" name="password"
th:field="*{password}" />
<button type="submit">Submit</button>
</form>
</div>
제어기
@Document
public class Customer implements UserDetails {
private static final long serialVersionUID = 1L;
private String firstName;
private String lastName;
private Date dateOfBirth;
private String username;
private String email;
private String password;
private String role;
public Customer() { }
public Customer(String firstName, String lastName, Date dateOfBirth, String username,
String email, String password, String role) {
super();
this.firstName = firstName;
this.lastName = lastName;
this.dateOfBirth = dateOfBirth;
this.username = username;
this.email = email;
this.password = password;
this.role = role;
}
//getters, setters, etc.
public Date getDateOfBirth() {
return this.dateOfBirth;
}
public void setDateOfBirth(String dateOfBirth) {
try {
this.dateOfBirth = new SimpleDateFormat("dd-MM-yyyy").parse(dateOfBirth);
}
catch (ParseException e) {
//...
}
}
}
registration.html (I의 형태로 바인더 제본 날짜를 파싱하기 위해 설정 메소드 변경) "/ registration"값은 DAO를 사용하여 새 고객을 삽입합니다.
조언에 감사 :이
은 결과입니다.
내 의심을 해결해 주셔서 감사합니다! – andy
DB에 저장된 날짜 값을보기로 표시하려고했으나 일, 월, 연도가 일치하지 않습니다.예를 들어 내가 19 06 1990을 삽입하면 표시된 값은 Fri Nov 10 00:00:00 CET 24입니다. 어디에서 잘못 되었습니까? – andy
어디서 잘못 될지 잘 모르겠습니다. 우선 db로 올바른 값을 보시겠습니까? – Veeram