문자열 날짜를 긴 밀리 초로 변환하는 방법
문자열 안에 "12-December-2012"와 같은 날짜가 있습니다. 이것을 밀리 초 (long)로 어떻게 변환 할 수 있습니까?
String string_date = "12-December-2012";
SimpleDateFormat f = new SimpleDateFormat("dd-MMM-yyyy");
try {
Date d = f.parse(string_date);
long milliseconds = d.getTime();
} catch (ParseException e) {
e.printStackTrace();
}
SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy");
Date date = (Date)formatter.parse("12-December-2012");
long mills = date.getTime();
a SimpleDateFormat
를 구문 분석 String
하고 반환 할 수있는 클래스 와 클래스 Date
의 getTime
메서드를 살펴보십시오 Date
.
- 먼저
java.util.Date
날짜 포맷터 를 사용하여 문자열을 변환 - 사용 다음 getTime ()는 일로부터의 밀리 세컨드의 수를 구하는
누군가가이 질문에 대한 현대적인 답변을 제공 할 때입니다. 2012 년에 질문을 받았을 때 당시 게시 된 답변도 좋은 답변이었습니다. 답변 2016에 게시 왜 또한 다음 긴 오래된 클래스를 사용 SimpleDateFormat
하고 Date
나에게 좀 더 신비의입니다. java.time
, JSR-310으로도 알려진 최신 Java 날짜 및 시간 API는 작업하기에 훨씬 좋습니다. ThreeTenABP를 통해 Android에서 사용할 수 있습니다 . Android Project에서 ThreeTenABP를 사용하는 방법 질문을 참조 하세요 .
대부분의 목적을 위해 UTC 기준으로 하루 시작 시점 이후의 밀리 초를 사용하는 것이 좋습니다 . 이를 얻으려면 :
DateTimeFormatter dateFormatter
= DateTimeFormatter.ofPattern("d-MMMM-uuuu", Locale.ENGLISH);
String stringDate = "12-December-2012";
long millisecondsSinceEpoch = LocalDate.parse(stringDate, dateFormatter)
.atStartOfDay(ZoneOffset.UTC)
.toInstant()
.toEpochMilli();
System.out.println(millisecondsSinceEpoch);
이것은 다음을 인쇄합니다.
1355270400000
특정 시간대의 시작 시간이 필요한 경우 UTC 대신 해당 시간대를 지정하십시오. 예를 들면 다음과 같습니다.
.atStartOfDay(ZoneId.of("Asia/Karachi"))
예상대로 이것은 약간 다른 결과를 제공합니다.
1355252400000
주목할 또 다른 점은 로케일을 DateTimeFormatter
. 12 월을 영어로 설정했는데 그 달이 같은 다른 언어가 있으므로 적절한 로케일을 직접 선택하십시오. 로케일을 제공하지 않은 경우 포맷터는 JVM의 로케일 설정을 사용합니다.이 설정은 많은 경우에 작동 할 수 있으며 다른 로케일 설정으로 기기에서 앱을 실행하면 언젠가 예기치 않게 실패합니다.
simpleDateFormat을 사용하여 문자열 날짜를 구문 분석 할 수 있습니다.
simpledateformat을 사용하면 쉽게 얻을 수 있습니다.
1) 먼저 simpledateformatter를 사용하여 문자열을 java.Date로 변환하십시오.
2) getTime 메서드를 사용하여 날짜로부터 밀리 초 수를 얻습니다.
public class test {
public static void main(String[] args) {
String currentDate = "01-March-2016";
SimpleDateFormat f = new SimpleDateFormat("dd-MMM-yyyy");
Date parseDate = f.parse(currentDate);
long milliseconds = parseDate.getTime();
}
}
가장 쉬운 방법은 Date () 및 getTime ()을 사용하는 날짜를 사용하는 것입니다.
Date dte=new Date();
long milliSeconds = dte.getTime();
String strLong = Long.toString(milliSeconds);
System.out.println(milliSeconds)
아래 코드를 시도하십시오
SimpleDateFormat f = new SimpleDateFormat("your_string_format", Locale.getDefault());
Date d = null;
try {
d = f.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
long timeInMillis = d.getTime();
참고URL : https://stackoverflow.com/questions/12473550/how-to-convert-a-string-date-to-long-millseconds
'Programing' 카테고리의 다른 글
Rails — STI없이 타입 컬럼을 사용 하시겠습니까? (0) | 2020.10.14 |
---|---|
JavaFX 2 및 국제화 (0) | 2020.10.14 |
한 줄씩 또는 전체 텍스트 파일을 한 번에 읽는 방법은 무엇입니까? (0) | 2020.10.14 |
자바 스크립트에서 상수 값을 변경할 수있는 이유 (0) | 2020.10.14 |
C # Form.Close 대 Form.Dispose (0) | 2020.10.14 |