자바 문자열을 날짜로 변환
String
'2010 년 1 월 2 일'형식의 Date
를 Java 로 변환하는 가장 좋은 방법은 무엇입니까 ?
궁극적으로 월, 일, 연도를 정수로 나누고 싶습니다.
Date date = new Date();
date.setMonth()..
date.setYear()..
date.setDay()..
date.setlong currentTime = date.getTime();
날짜를 시간으로 변환합니다.
그것은 어려운 방법이며 이러한 java.util.Date
setter 메서드는 Java 1.1 (1997) 이후로 사용되지 않습니다. 입력 문자열과 일치하는 형식 패턴을 사용 SimpleDateFormat
하여 날짜를 형식화하기 만하면됩니다 .
입력 문자열로 "2010 년 1 월 2 일"의 특정 경우 :
- "1 월"은 전체 텍스트 월이므로
MMMM
패턴을 사용하십시오. - "2"는 짧은 날짜이므로
d
패턴을 사용하십시오. - "2010"은 4 자리 연도이므로
yyyy
패턴을 사용하십시오.
String string = "January 2, 2010";
DateFormat format = new SimpleDateFormat("MMMM d, yyyy", Locale.ENGLISH);
Date date = format.parse(string);
System.out.println(date); // Sat Jan 02 00:00:00 GMT 2010
명시 적 Locale
주장 의 중요성에 유의하십시오 . 생략 하면 입력 문자열의 월 이름에 사용되는 것과 같이 반드시 영어가 아닌 기본 로케일 을 사용합니다. 로케일이 입력 문자열과 일치하지 않으면 java.text.ParseException
형식 패턴이 유효한 것처럼 보이지만 혼란 스러울 것입니다.
다음은 사용 가능한 모든 형식 패턴을 나열 하는 javadoc 에서 추출한 관련성입니다 .
Letter Date or Time Component Presentation Examples
------ ---------------------- ------------------ -------------------------------------
G Era designator Text AD
y Year Year 1996; 96
Y Week year Year 2009; 09
M/L Month in year Month July; Jul; 07
w Week in year Number 27
W Week in month Number 2
D Day in year Number 189
d Day in month Number 10
F Day of week in month Number 2
E Day in week Text Tuesday; Tue
u Day number of week Number 1
a Am/pm marker Text PM
H Hour in day (0-23) Number 0
k Hour in day (1-24) Number 24
K Hour in am/pm (0-11) Number 0
h Hour in am/pm (1-12) Number 12
m Minute in hour Number 30
s Second in minute Number 55
S Millisecond Number 978
z Time zone General time zone Pacific Standard Time; PST; GMT-08:00
Z Time zone RFC 822 time zone -0800
X Time zone ISO 8601 time zone -08; -0800; -08:00
패턴은 대소 문자를 구분하며 4 자 이상의 텍스트 기반 패턴은 전체 형식을 나타냅니다. 그렇지 않으면 가능한 경우 짧거나 축약 된 양식이 사용됩니다. 따라서 예 MMMMM
또는 그 이상은 필요하지 않습니다.
다음은 SimpleDateFormat
현재까지 주어진 문자열을 구문 분석하는 유효한 패턴 의 몇 가지 예입니다 .
Input string Pattern
------------------------------------ ----------------------------
2001.07.04 AD at 12:08:56 PDT yyyy.MM.dd G 'at' HH:mm:ss z
Wed, Jul 4, '01 EEE, MMM d, ''yy
12:08 PM h:mm a
12 o'clock PM, Pacific Daylight Time hh 'o''clock' a, zzzz
0:08 PM, PDT K:mm a, z
02001.July.04 AD 12:08 PM yyyyy.MMMM.dd GGG hh:mm aaa
Wed, 4 Jul 2001 12:08:56 -0700 EEE, d MMM yyyy HH:mm:ss Z
010704120856-0700 yyMMddHHmmssZ
2001-07-04T12:08:56.235-0700 yyyy-MM-dd'T'HH:mm:ss.SSSZ
2001-07-04T12:08:56.235-07:00 yyyy-MM-dd'T'HH:mm:ss.SSSXXX
2001-W27-3 YYYY-'W'ww-u
중요한 점은이 SimpleDateFormat
되어 있지 스레드에 안전. 즉, 정적 또는 인스턴스 변수로 선언하고 할당 한 다음 다른 메서드 / 스레드에서 재사용해서는 안됩니다. 항상 메서드 로컬 범위 내에서 완전히 새로 만들어야합니다.
Java 8 업데이트
Java 8 이상을 사용하는 경우 DateTimeFormatter
(여기에서도 링크를 클릭하여 사전 정의 된 모든 포맷터 및 사용 가능한 형식 패턴을 확인하십시오. 자습서는 여기에서 사용할 수 있습니다 ). 이 새로운 API는 JodaTime에서 영감을 받았습니다 .
String string = "January 2, 2010";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM d, yyyy", Locale.ENGLISH);
LocalDate date = LocalDate.parse(string, formatter);
System.out.println(date); // 2010-01-02
참고 : 형식 패턴에 시간 부분도 포함되는 경우 LocalDateTime#parse(text, formatter)
대신 LocalDate#parse(text, formatter)
. 그리고 형식 패턴에 시간대도 포함되는 경우 ZonedDateTime#parse(text, formatter)
대신 사용하십시오.
다음은 사용 가능한 모든 형식 패턴을 나열 하는 javadoc 에서 추출한 관련성입니다 .
Symbol Meaning Presentation Examples
------ -------------------------- ------------ ----------------------------------------------
G era text AD; Anno Domini; A
u year year 2004; 04
y year-of-era year 2004; 04
D day-of-year number 189
M/L month-of-year number/text 7; 07; Jul; July; J
d day-of-month number 10
Q/q quarter-of-year number/text 3; 03; Q3; 3rd quarter
Y week-based-year year 1996; 96
w week-of-week-based-year number 27
W week-of-month number 4
E day-of-week text Tue; Tuesday; T
e/c localized day-of-week number/text 2; 02; Tue; Tuesday; T
F week-of-month number 3
a am-pm-of-day text PM
h clock-hour-of-am-pm (1-12) number 12
K hour-of-am-pm (0-11) number 0
k clock-hour-of-am-pm (1-24) number 0
H hour-of-day (0-23) number 0
m minute-of-hour number 30
s second-of-minute number 55
S fraction-of-second fraction 978
A milli-of-day number 1234
n nano-of-second number 987654321
N nano-of-day number 1234000000
V time-zone ID zone-id America/Los_Angeles; Z; -08:30
z time-zone name zone-name Pacific Standard Time; PST
O localized zone-offset offset-O GMT+8; GMT+08:00; UTC-08:00;
X zone-offset 'Z' for zero offset-X Z; -08; -0830; -08:30; -083015; -08:30:15;
x zone-offset offset-x +0000; -08; -0830; -08:30; -083015; -08:30:15;
Z zone-offset offset-Z +0000; -0800; -08:00;
더 많이 사용되는 패턴에 대해 미리 정의 된 몇 가지 포맷터 가 있습니다. 따라서 예를 들어 대신 DateTimeFormatter.ofPattern("EEE, d MMM yyyy HH:mm:ss Z", Locale.ENGLISH);
사용할 수 있습니다 DateTimeFormatter.RFC_1123_DATE_TIME
. 이는 SimpleDateFormat
스레드로부터 안전 하기 때문에 가능 합니다. 따라서 필요한 경우 직접 정의 할 수도 있습니다.
특정 입력 문자열 형식의 경우 명시 적을 사용할 필요가 없습니다 DateTimeFormatter
. 2016-09-26T17 : 44 : 57Z와 같은 표준 ISO 8601 날짜 LocalDateTime#parse(text)
는 이미 ISO_LOCAL_DATE_TIME
포맷터를 사용하므로 직접 파싱 할 수 있습니다 . 마찬가지로 LocalDate#parse(text)
시간 구성 요소없이 ISO 날짜를 구문 분석하고 (참조 ISO_LOCAL_DATE
) ZonedDateTime#parse(text)
오프셋 및 시간대가 추가 된 ISO 날짜를 구문 분석합니다 (참조 ISO_ZONED_DATE_TIME
).
아 예, Java Date 토론입니다. 날짜 조작을 처리하기 위해 Date , Calendar , GregorianCalendar 및 SimpleDateFormat을 사용 합니다. 예를 들어 1 월 날짜를 입력으로 사용 :
Calendar mydate = new GregorianCalendar();
String mystring = "January 2, 2010";
Date thedate = new SimpleDateFormat("MMMM d, yyyy", Locale.ENGLISH).parse(mystring);
mydate.setTime(thedate);
//breakdown
System.out.println("mydate -> "+mydate);
System.out.println("year -> "+mydate.get(Calendar.YEAR));
System.out.println("month -> "+mydate.get(Calendar.MONTH));
System.out.println("dom -> "+mydate.get(Calendar.DAY_OF_MONTH));
System.out.println("dow -> "+mydate.get(Calendar.DAY_OF_WEEK));
System.out.println("hour -> "+mydate.get(Calendar.HOUR));
System.out.println("minute -> "+mydate.get(Calendar.MINUTE));
System.out.println("second -> "+mydate.get(Calendar.SECOND));
System.out.println("milli -> "+mydate.get(Calendar.MILLISECOND));
System.out.println("ampm -> "+mydate.get(Calendar.AM_PM));
System.out.println("hod -> "+mydate.get(Calendar.HOUR_OF_DAY));
그런 다음 다음과 같이 조작 할 수 있습니다.
Calendar now = Calendar.getInstance();
mydate.set(Calendar.YEAR,2009);
mydate.set(Calendar.MONTH,Calendar.FEBRUARY);
mydate.set(Calendar.DAY_OF_MONTH,25);
mydate.set(Calendar.HOUR_OF_DAY,now.get(Calendar.HOUR_OF_DAY));
mydate.set(Calendar.MINUTE,now.get(Calendar.MINUTE));
mydate.set(Calendar.SECOND,now.get(Calendar.SECOND));
// or with one statement
//mydate.set(2009, Calendar.FEBRUARY, 25, now.get(Calendar.HOUR_OF_DAY), now.get(Calendar.MINUTE), now.get(Calendar.SECOND));
System.out.println("mydate -> "+mydate);
System.out.println("year -> "+mydate.get(Calendar.YEAR));
System.out.println("month -> "+mydate.get(Calendar.MONTH));
System.out.println("dom -> "+mydate.get(Calendar.DAY_OF_MONTH));
System.out.println("dow -> "+mydate.get(Calendar.DAY_OF_WEEK));
System.out.println("hour -> "+mydate.get(Calendar.HOUR));
System.out.println("minute -> "+mydate.get(Calendar.MINUTE));
System.out.println("second -> "+mydate.get(Calendar.SECOND));
System.out.println("milli -> "+mydate.get(Calendar.MILLISECOND));
System.out.println("ampm -> "+mydate.get(Calendar.AM_PM));
System.out.println("hod -> "+mydate.get(Calendar.HOUR_OF_DAY));
String str_date = "11-June-07";
DateFormat formatter;
Date date;
formatter = new SimpleDateFormat("dd-MMM-yy");
date = formatter.parse(str_date);
Java 8에서는 새로운 날짜 / 시간 API ( JSR 310 )가 제공됩니다.
다음 방법을 사용하여 Joda-Time 에 의존하지 않고 Java 8에서 날짜를 구문 분석 할 수 있습니다 .
String str = "January 2nd, 2010";
// if we 2nd even we have changed in pattern also it is not working please workout with 2nd
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM Q, yyyy", Locale.ENGLISH);
LocalDate date = LocalDate.parse(str, formatter);
// access date fields
int year = date.getYear(); // 2010
int day = date.getDayOfMonth(); // 2
Month month = date.getMonth(); // JANUARY
int monthAsInt = month.getValue(); // 1
LocalDate 는 날짜를 표시하기위한 표준 Java 8 클래스입니다 (시간 없음). 날짜 및 시간 정보를 포함하는 값을 구문 분석하려면 LocalDateTime 을 사용해야합니다 . 시간대가있는 값의 경우 ZonedDateTime을 사용 하십시오 . 둘 다 다음 parse()
과 유사한 방법을 제공합니다 LocalDate
.
LocalDateTime dateWithTime = LocalDateTime.parse(strWithDateAndTime, dateTimeFormatter);
ZonedDateTime zoned = ZonedDateTime.parse(strWithTimeZone, zoneFormatter);
DateTimeFormatter Javadoc 의 목록 형식화 문자 :
All letters 'A' to 'Z' and 'a' to 'z' are reserved as pattern letters.
The following pattern letters are defined:
Symbol Meaning Presentation Examples
------ ------- ------------ -------
G era text AD; Anno Domini; A
u year year 2004; 04
y year-of-era year 2004; 04
D day-of-year number 189
M/L month-of-year number/text 7; 07; Jul; July; J
d day-of-month number 10
Q/q quarter-of-year number/text 3; 03; Q3; 3rd quarter
Y week-based-year year 1996; 96
w week-of-week-based-year number 27
W week-of-month number 4
E day-of-week text Tue; Tuesday; T
e/c localized day-of-week number/text 2; 02; Tue; Tuesday; T
F week-of-month number 3
a am-pm-of-day text PM
h clock-hour-of-am-pm (1-12) number 12
K hour-of-am-pm (0-11) number 0
k clock-hour-of-am-pm (1-24) number 0
H hour-of-day (0-23) number 0
m minute-of-hour number 30
s second-of-minute number 55
S fraction-of-second fraction 978
A milli-of-day number 1234
n nano-of-second number 987654321
N nano-of-day number 1234000000
V time-zone ID zone-id America/Los_Angeles; Z; -08:30
z time-zone name zone-name Pacific Standard Time; PST
O localized zone-offset offset-O GMT+8; GMT+08:00; UTC-08:00;
X zone-offset 'Z' for zero offset-X Z; -08; -0830; -08:30; -083015; -08:30:15;
x zone-offset offset-x +0000; -08; -0830; -08:30; -083015; -08:30:15;
Z zone-offset offset-Z +0000; -0800; -08:00;
일부 답변은 기술적으로 정확하지만 권장하지 않습니다.
- java.util.Date 및 Calendar 클래스는 악명 높은 문제입니다. 설계 및 구현상의 결함으로 인해이를 피하십시오. 다행히 우리는 다른 두 개의 우수한 날짜-시간 라이브러리를 선택할 수 있습니다.
- Joda-Time
이 인기있는 오픈 소스 무료 라이브러리는 여러 버전의 Java에서 사용할 수 있습니다. 그 사용법의 많은 예는 StackOverflow에서 찾을 수 있습니다. 이 중 일부를 읽으면 빠르게 익힐 수 있습니다. - java.time. * 패키지이
새로운 클래스 세트는 Joda-Time에서 영감을 받아 JSR 310에 의해 정의되었습니다. 이러한 클래스는 Java 8에 내장되어 있습니다. 이러한 클래스를 Java 7로 백 포트하는 프로젝트가 진행 중이지만 해당 백 포팅은 다음에 의해 지원되지 않습니다. 신탁.
- Joda-Time
- Kristopher Johnson이 질문에 대한 그의 의견에서 올바르게 언급했듯이 다른 답변은 다음과 같은 중요한 문제를 무시합니다.
- Time of Day
Date에는 날짜 부분과 시간 부분이 모두 있습니다) - 시간대
하루의 시작은 시간대에 따라 다릅니다. 시간대 지정에 실패하면 JVM의 기본 시간대가 적용됩니다. 즉, 다른 컴퓨터에서 실행되거나 수정 된 시간대 설정으로 코드의 동작이 변경 될 수 있습니다. 아마도 당신이 원하는 것이 아닐 것입니다. - 로케일
로케일의 언어는 구문 분석 중에 발견 된 단어 (월 및 일 이름)를 해석하는 방법을 지정합니다. ( BalusC 의 대답 은 이것을 적절하게 처리합니다.) 또한 Locale은 날짜-시간의 문자열 표현을 생성 할 때 일부 포맷터의 출력에 영향을줍니다.
- Time of Day
Joda-Time
Joda-Time에 대한 몇 가지 메모는 다음과 같습니다.
시간대
에 Joda 타임 하는 날짜 시간 객체는 진정으로 자신의 할당 시간대를 알고있다. 이것은 시간대가있는 것처럼 보이지만 그렇지 않은 java.util.Date 클래스와 대조 됩니다.
아래의 예제 코드에서 문자열을 구문 분석하는 포맷터에 시간대 객체를 전달하는 방법에 유의하십시오. 해당 시간대는 해당 시간대에서 발생한 날짜-시간을 해석하는 데 사용됩니다. 따라서 해당 문자열 입력으로 표시되는 시간대를 생각하고 결정해야합니다.
입력 문자열에 시간 부분이 없기 때문에 Joda-Time은 지정된 시간대의 첫 번째 순간을 시간으로 할당합니다. 일반적으로 이것은 일광 절약 시간 (DST) 또는 기타 이상으로 00:00:00
인해 항상 그런 것은 아닙니다 . 그런데을 호출하여 모든 DateTime 인스턴스에 대해 동일한 작업을 수행 할 수 있습니다 .withTimeAtStartOfDay
포맷터 패턴
포맷터의 패턴에 사용 된 문자는 Joda-Time에서 java.util.Date/Calendar의 문자와 유사하지만 정확히 동일하지는 않습니다. 문서를주의 깊게 읽으십시오.
불변성
우리는 일반적으로 Joda-Time에서 변경 불가능한 클래스를 사용합니다. 기존 Date-Time 개체를 수정하는 대신 변경이 필요한 경우를 제외하고 대부분의 측면이 복사 된 다른 개체를 기반으로 새 인스턴스를 만드는 메서드를 호출합니다. 예는 withZone
아래 마지막 줄에 있는 호출 입니다. 불변성 은 Joda-Time을 스레드로부터 매우 안전하게 만드는 데 도움이되며 일부 작업을 더 명확하게 만들 수도 있습니다.
변환
Joda-Time 객체에 대해 알지 못하는 다른 클래스 / 프레임 워크와 함께 사용하려면 java.util.Date 객체가 필요합니다. 다행히도 앞뒤로 이동하는 것은 매우 쉽습니다.
java.util.Date 객체 (여기서는 date
)에서 Joda-Time DateTime으로 이동…
org.joda.time.DateTime dateTime = new DateTime( date, timeZone );
Joda-Time에서 java.util.Date 객체로 다른 방향으로 이동…
java.util.Date date = dateTime.toDate();
샘플 코드
String input = "January 2, 2010";
java.util.Locale locale = java.util.Locale.US;
DateTimeZone timeZone = DateTimeZone.forID( "Pacific/Honolulu" ); // Arbitrarily chosen for example.
DateTimeFormatter formatter = DateTimeFormat.forPattern( "MMMM d, yyyy" ).withZone( timeZone ).withLocale( locale );
DateTime dateTime = formatter.parseDateTime( input );
System.out.println( "dateTime: " + dateTime );
System.out.println( "dateTime in UTC/GMT: " + dateTime.withZone( DateTimeZone.UTC ) );
실행하면…
dateTime: 2010-01-02T00:00:00.000-10:00
dateTime in UTC/GMT: 2010-01-02T10:00:00.000Z
SimpleDateFormat 클래스를 처리하는 동안 Date는 스레드로부터 안전하지 않으며 단일 Date 객체를 여러 스레드와 공유 할 수 없다는 점을 기억하는 것이 중요합니다.
또한 "m"과 "M"사이에는 작은 경우가 분으로 사용되고 대문자는 월로 사용되는 경우 큰 차이가 있습니다. "d"와 "D"도 마찬가지입니다. 이것은 종종 간과되는 미묘한 버그를 일으킬 수 있습니다. 자세한 내용은 Javadoc 또는 Guide to Convert String to Date in Java 를 참조하십시오.
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date;
try {
date = dateFormat.parse("2013-12-4");
System.out.println(date.toString()); // Wed Dec 04 00:00:00 CST 2013
String output = dateFormat.format(date);
System.out.println(output); // 2013-12-04
}
catch (ParseException e) {
e.printStackTrace();
}
그것은 나를 위해 잘 작동합니다.
또한 SimpleDateFormat은 GWT 와 같은 일부 클라이언트 측 기술에서 사용할 수 없습니다 .
Calendar.getInstance ()로 이동하는 것이 좋으며 요구 사항은 두 날짜를 비교하는 것입니다. 긴 데이트를 위해 가십시오.
우리가 사용한 간단한 두 개의 포맷터 :
- 어떤 형식의 날짜를 원합니까?
- 실제로 어떤 형식 날짜가 있습니까?
전체 날짜를 시간 형식으로 구문 분석합니다.
date="2016-05-06 16:40:32";
public static String setDateParsing(String date) throws ParseException {
// This is the format date we want
DateFormat mSDF = new SimpleDateFormat("hh:mm a");
// This format date is actually present
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-mm-dd hh:mm");
return mSDF.format(formatter.parse(date));
}
내 겸손한 테스트 프로그램. 나는 포맷터를 가지고 놀고 로그 파일에서 찾은 긴 날짜를 찾는 데 사용합니다 (하지만 누가 거기에 넣었는지 ...).
내 테스트 프로그램 :
package be.test.package.time;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.TimeZone;
public class TimeWork {
public static void main(String[] args) {
TimeZone timezone = TimeZone.getTimeZone("UTC");
List<Long> longs = new ArrayList<>();
List<String> strings = new ArrayList<>();
//Formatting a date needs a timezone - otherwise the date get formatted to your system time zone.
//Use 24h format HH. In 12h format hh can be in range 0-11, which makes 12 overflow to 0.
DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss.SSS");
formatter.setTimeZone(timezone);
Date now = new Date();
//Test dates
strings.add(formatter.format(now));
strings.add("01-01-1970 00:00:00.000");
strings.add("01-01-1970 00:00:01.000");
strings.add("01-01-1970 00:01:00.000");
strings.add("01-01-1970 01:00:00.000");
strings.add("01-01-1970 10:00:00.000");
strings.add("01-01-1970 12:00:00.000");
strings.add("01-01-1970 24:00:00.000");
strings.add("02-01-1970 00:00:00.000");
strings.add("01-01-1971 00:00:00.000");
strings.add("01-01-2014 00:00:00.000");
strings.add("31-12-1969 23:59:59.000");
strings.add("31-12-1969 23:59:00.000");
strings.add("31-12-1969 23:00:00.000");
//Test data
longs.add(now.getTime());
longs.add(-1L);
longs.add(0L); //Long date presentation at - midnight 1/1/1970 UTC - The timezone is important!
longs.add(1L);
longs.add(1000L);
longs.add(60000L);
longs.add(3600000L);
longs.add(36000000L);
longs.add(43200000L);
longs.add(86400000L);
longs.add(31536000000L);
longs.add(1388534400000L);
longs.add(7260000L);
longs.add(1417706084037L);
longs.add(-7260000L);
System.out.println("===== String to long =====");
//Show the long value of the date
for (String string: strings) {
try {
Date date = formatter.parse(string);
System.out.println("Formated date : " + string + " = Long = " + date.getTime());
} catch (ParseException e) {
e.printStackTrace();
}
}
System.out.println("===== Long to String =====");
//Show the date behind the long
for (Long lo : longs) {
Date date = new Date(lo);
String string = formatter.format(date);
System.out.println("Formated date : " + string + " = Long = " + lo);
}
}
}
시험 결과:
===== String to long =====
Formated date : 05-12-2014 10:17:34.873 = Long = 1417774654873
Formated date : 01-01-1970 00:00:00.000 = Long = 0
Formated date : 01-01-1970 00:00:01.000 = Long = 1000
Formated date : 01-01-1970 00:01:00.000 = Long = 60000
Formated date : 01-01-1970 01:00:00.000 = Long = 3600000
Formated date : 01-01-1970 10:00:00.000 = Long = 36000000
Formated date : 01-01-1970 12:00:00.000 = Long = 43200000
Formated date : 01-01-1970 24:00:00.000 = Long = 86400000
Formated date : 02-01-1970 00:00:00.000 = Long = 86400000
Formated date : 01-01-1971 00:00:00.000 = Long = 31536000000
Formated date : 01-01-2014 00:00:00.000 = Long = 1388534400000
Formated date : 31-12-1969 23:59:59.000 = Long = -1000
Formated date : 31-12-1969 23:59:00.000 = Long = -60000
Formated date : 31-12-1969 23:00:00.000 = Long = -3600000
===== Long to String =====
Formated date : 05-12-2014 10:17:34.873 = Long = 1417774654873
Formated date : 31-12-1969 23:59:59.999 = Long = -1
Formated date : 01-01-1970 00:00:00.000 = Long = 0
Formated date : 01-01-1970 00:00:00.001 = Long = 1
Formated date : 01-01-1970 00:00:01.000 = Long = 1000
Formated date : 01-01-1970 00:01:00.000 = Long = 60000
Formated date : 01-01-1970 01:00:00.000 = Long = 3600000
Formated date : 01-01-1970 10:00:00.000 = Long = 36000000
Formated date : 01-01-1970 12:00:00.000 = Long = 43200000
Formated date : 02-01-1970 00:00:00.000 = Long = 86400000
Formated date : 01-01-1971 00:00:00.000 = Long = 31536000000
Formated date : 01-01-2014 00:00:00.000 = Long = 1388534400000
Formated date : 01-01-1970 02:01:00.000 = Long = 7260000
Formated date : 04-12-2014 15:14:44.037 = Long = 1417706084037
Formated date : 31-12-1969 21:59:00.000 = Long = -7260000
SimpleDateformat을 사용하여 문자열을 날짜로 변경할 수 있습니다.
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String strDate = "2000-01-01";
Date date = new Date(sdf.parse(strDate).getTime());
소스 링크
대한 안드로이드
Calendar.getInstance (). getTime () 은
Thu Jul 26 15:54:13 GMT+05:30 2018
사용하다
String oldDate = "Thu Jul 26 15:54:13 GMT+05:30 2018";
DateFormat format = new SimpleDateFormat("EEE LLL dd HH:mm:ss Z yyyy");
Date updateLast = format.parse(oldDate);
이 시도
String date = get_pump_data.getString("bond_end_date");
DateFormat format = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
Date datee = (Date)format.parse(date);
참고 URL : https://stackoverflow.com/questions/4216745/java-string-to-date-conversion
'Program Tip' 카테고리의 다른 글
오류 : vcvarsall.bat를 찾을 수 없습니다. (0) | 2020.09.28 |
---|---|
컬렉션이 수정되었습니다. (0) | 2020.09.28 |
차이점은 무엇입니까 (0) | 2020.09.28 |
C #에서 리플렉션을 사용하여 문자열에서 속성 값 가져 오기 (0) | 2020.09.28 |
십진수 대 두 배! (0) | 2020.09.28 |