정수 날짜 시간을 실시간 날짜 시간 문제로 변환 하시겠습니까? JAVA [중복]
그래서 Integer DateTime 형식을 Java의 일반 DateTime 형식으로 변환하는 데 문제가 있습니다. 이 변수는 int DateTime, 예를 들어 "/ Date (1484956800000) /"입니다. 그리고 나는 그것을 정상적인 날짜 시간으로 변환하고 화면에 표시하려고합니다 ...
이렇게 해봤는데 ..
String dateAsText = new SimpleDateFormat("MM-dd HH:mm")
.format(new Date(Integer.parseInt(deals.getDate_time()) * 1000L));
// setting my textView with the string dateAsText
holder.Time.setText(dateAsText);
답변
1 LiveandLetLive
난 당신이 제안 을 중지 오래된 오류가 발생하기 쉬운 사용하여 java.util
날짜 - 시간 API를하고 SimpleDateFormat
. 받는 사람 스위치 현대 java.time
날짜 - 시간 API와 포맷에 대응 API ( java.time.format
). Trail : Date Time 에서 최신 날짜-시간 API에 대해 자세히 알아보세요 .
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
// Obtain an instance of Instant using milliseconds from the epoch of
// 1970-01-01T00:00:00Z
Instant instant = Instant.ofEpochMilli(1484956800000L);
System.out.println(instant);
// Specify the time-zone
ZoneId myTimeZone = ZoneId.of("Europe/London");
// Obtain ZonedDateTime out of Instant
ZonedDateTime zdt = instant.atZone(myTimeZone);
// Obtain LocalDateTime out of ZonedDateTime
// Note that LocalDateTime throws away the important information of time-zone
LocalDateTime ldt = zdt.toLocalDateTime();
System.out.println(ldt);
// Custom format
String dateAsText = ldt.format(DateTimeFormatter.ofPattern("MM-dd HH:mm"));
System.out.println(dateAsText);
}
}
산출:
2017-01-21T00:00:00Z
2017-01-21T00:00
01-21 00:00
잘못 설계된 레거시를 계속 사용하려면 java.util.Date
다음과 같이 할 수 있습니다.
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
public static void main(String[] args) {
Date date = new Date(1484956800000L);
System.out.println(date);
// Custom format
String dateAsText = new SimpleDateFormat("MM-dd HH:mm").format(date);
System.out.println(dateAsText);
}
}
산출:
Sat Jan 21 00:00:00 GMT 2017
01-21 00:00