Java에서 현재 날짜를 문자열로 어떻게 변환합니까?
Java에서 현재 날짜를 문자열로 어떻게 변환합니까?
답변:
String date = new SimpleDateFormat("dd-MM-yyyy").format(new Date());
// GET DATE & TIME IN ANY FORMAT
import java.util.Calendar;
import java.text.SimpleDateFormat;
public static final String DATE_FORMAT_NOW = "yyyy-MM-dd HH:mm:ss";
public static String now() {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
return sdf.format(cal.getTime());
}
여기 에서 찍은
Calendar더 바람직한가 Date?
// On the form: dow mon dd hh:mm:ss zzz yyyy
new Date().toString();
DateFormat구현을 사용하십시오 . 예 : SimpleDateFormat.
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
String data = df.format(new Date());
LocalDate.now()
.toString()
2017-01-23
원하는 / 예상 시간대를 명시 적으로 지정하는 것이 좋습니다.
LocalDate.now( ZoneId.of( "America/Montreal" ) )
.toString()
Java 8 이상에서 최신 방식은 java.time 프레임 워크를 사용하는 것입니다.
특정 시점에 날짜가 전 세계적으로 다르므로 시간대를 지정하십시오.
ZoneId zoneId = ZoneId.of( "America/Montreal" ) ; // Or ZoneOffset.UTC or ZoneId.systemDefault()
LocalDate today = LocalDate.now( zoneId ) ;
String output = today.toString() ;
2017-01-23
기본적으로 표준 ISO 8601 형식 의 문자열을 얻습니다 .
다른 형식의 경우 java.time.format.DateTimeFormatter클래스를 사용하십시오 .
java.time의 프레임 워크는 나중에 자바 8에 내장되어 있습니다. 이 클래스는 까다로운 기존에 대신 기존 과 같은 날짜 - 시간의 수업을 java.util.Date, Calendar,SimpleDateFormat .
Joda 타임 프로젝트는 지금에 유지 관리 모드 의로 마이그레이션을 조언 java.time의 클래스.
자세한 내용은 Oracle Tutorial을 참조하십시오 . 그리고 많은 예제와 설명을 위해 Stack Overflow를 검색하십시오. 사양은 JSR 310입니다. 입니다.
java.time 객체를 데이터베이스와 직접 교환 할 수 있습니다 . JDBC 4.2 이상을 준수 하는 JDBC 드라이버를 사용하십시오 . 문자열이 필요하지 않습니다.java.sql.* 클래스 .
java.time 클래스는 어디서 구할 수 있습니까?
ThreeTen - 추가 프로젝트 추가 클래스와 java.time를 확장합니다. 이 프로젝트는 java.time에 향후 추가 할 수있는 가능성을 입증하는 곳입니다. 당신은 여기에 몇 가지 유용한 클래스와 같은 찾을 수 있습니다 Interval, YearWeek, YearQuarter, 그리고 더 .
더 빠름 :
String date = FastDateFormat.getInstance("dd-MM-yyyy").format(System.currentTimeMillis( ));
시간 (YYYY-MM-dd)
String time = new DateTime( yourData ).toString("yyyy-MM-dd");
그리고 DateTime의 라이브러리는 다음과 같습니다.
import org.joda.time.DateTime;
DateTime에서 왔습니까? 이 사이트는 스 니펫 라이브러리 이상을 의미하므로 Stack Overflow에 대한 답변에는 설명이 있어야합니다.
대부분의 답변은 유효합니다. 날짜 처리를위한 새로운 JAVA API 수정으로 Java 날짜 처리의 초기 모호성이 감소되었습니다.
유사한 호출에 대해 더 이상 사용되지 않는 메시지가 표시됩니다.
new Date() // deprecated
위의 호출에서는 개발자가 새 Date 객체가 현재 타임 스탬프와 함께 Date 객체를 제공한다고 가정했습니다. 이 동작은 다른 Java API 클래스에서 일관되지 않습니다.
이를 수행하는 새로운 방법은 캘린더 인스턴스를 사용하는 것 입니다.
new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()
여기에서도 명명 규칙이 완벽하지는 않지만 이것은 많이 구성되어 있습니다. 문제를 해결하는 데 어려움을 겪고 있지만 논리적으로 들리거나 보이면 결코 잊지 않을 사람에게 이것은 좋은 접근 방식입니다.
이것은 실제 생활과 더 동의어입니다.
이를 수행하는 또 다른 방법은 Joda 시간 API를 사용하는 것입니다.
new DateTime().toString("yyyy-MM-dd")
또는 훨씬 명백한
new DateTime(Calendar.getInstance().getTime()).toString("yyyy-MM-dd")
둘 다 동일한 결과를 반환합니다.
java.util.Date, java.util.Calendar그리고 java.text.SimpleTextFormat지금 기존 에 의해 대체, java.time의 클래스. 또한 Joda-Time 프로젝트는 이제 유지 관리 모드 에 있으며 팀은 java.time으로의 마이그레이션을 조언합니다.
Clock로 Java 8 의 구현은 레거시 클래스와 정확히 동일합니다. Java 9에서만 나노초 단위의 정밀한 해상도로 현재 순간을 포착 할 수있는 새로운 구현이 제공됩니다.
public static Date getDateByString(String dateTime) {
if(dateTime==null || dateTime.isEmpty()) {
return null;
}
else{
String modified = dateTime + ".000+0000";
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Date dateObj = new Date();
Date dateObj1 = new Date();
try {
if (dateTime != null) {
dateObj = formatter.parse(modified);
}
} catch (ParseException e) {
e.printStackTrace();
}
return dateObj;
}
}
String형식 의 날짜도 함수 에 전달할 수 없습니다 .