2016-09-12 8 views
0

일주일 전 컴퓨터 과학 수업을 시작하기 시작한이 날짜와 시간을 얻기 위해이 코드를 발견했습니다. 그러나 나는 이것이 의미하는 바를 완전히 이해하지 못합니다. 누군가가 그 것이 굉장 할 것이라고 분명히 말할 수 있다면! :)이 날짜 및 시간 코드 조각은 어떻게 작동합니까?

long yourmilliseconds = System.currentTimeMillis(); 
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy HH:mm");  
Date resultdate = new Date(yourmilliseconds); 
System.out.print("Date: "); 
System.out.println(sdf.format(resultdate)); 
+2

http://docs.oracle.com/javase/tutorial/i18n/format/simpleDateFormat.html –

답변

1

long yourmilliseconds = System.currentTimeMillis();

Date resultdate = new Date(yourmilliseconds);

시스템

에서 (밀리 초)을 얻을 그것에서 날짜를 작성합니다. 이 두 라인은 JDK1.7에서 날짜로

Date resultdate = new Date();

변경 될 수 있으며, 이전의 어떤 본질은 형식 클래스

SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy HH:mm");

를 사용하는 포맷하지 않은 패턴은 것입니다 이제

System.out.println(sdf.format(resultdate));

우리가 c는 인쇄 모든 서식 지정 방법을 확인하고 인쇄하십시오.

+0

감사합니다. –

0

무서운 웜뱃은 당신에게 개별 단계를 설명해주었습니다.하지만 조금 더 있습니다. 모든

첫째, 프로그래밍을 학습 경험 자신을 만드는 방법에 대한 것입니다. 그래서, 당신의 첫 번째 단계는이 접근법이 될 것입니다 : 그 소스 코드를 가져다가 SO 질문에 붙여 넣는 대신 ... "public static void main"메소드에 붙여 넣으십시오. 공개 수업 시간. 그것을 컴파일하고, 실행하고, 무슨 일이 일어나는지를 봅니다. 그리고 그걸 가지고 놀아 라. 그 질문에 나뭇잎 경우

, 다음 단계는 javadoc의 조회하는 것입니다 - 당신이 볼; 모든 코드는 표준 클래스로 처리됩니다. 그리고 그들은 모두 잘 어울립니다 documented.

오늘 강의는 여기에서 확인하십시오. 그러나 실제로는 을 먼저 시도해보십시오. 이 사이트의 정책은 그렇다고 말할 수 있지만, 그만큼 학습 결과를 얻을 수 있습니다!

0

java.time

그 코드 :

  • 이 현재의 순간 (날짜 시간)
  • 이 텍스트로 그 순간을 표현하는 문자열을 생성을 캡처합니다. 이 두 개의 서로 다른 개념이라는 것을

참고. 날짜 시간 객체는 이 아니며 문자열입니다. 날짜 - 시간 객체 값을 나타내는 문자열을 생성합니다. 초보자 프로그래머는 종종 혼란과 좌절의 원인이되는 두 개를 결합합니다.

불행히도이 코드 스 니펫은 java.time 클래스로 대체 된 오래된 레거시 날짜 - 시간 클래스를 사용합니다. 오래된 수업은 저조한 디자인, 혼란스럽고 귀찮은 것으로 입증되었습니다.

현재 순간을 포착하는 현대적인 방법은 간단합니다. Instant 클래스는 UTC의 타임 라인에서 나노초까지의 순간을 나타냅니다.

Instant instant = Instant.now(); 

표준 ISO 8601 형식으로 그 순간을 나타내는 String을 생성하려면 toString를 호출합니다.

String output = instant.toString(); 

2016-09-12T05 : 36 : 55Z

해당 지역 벽시계 시간의 렌즈를 통해 동일한 순간을보고 특정 시간대 (ZoneId)으로 조정한다. 다시

ZoneId z = ZoneId.of("America/Montreal"); 
ZonedDateTime zdt = instant.atZone(z); 

는 표준 ISO 8601 형식으로 그 순간을 나타내는 String을 생성하기 위해, 단순히 toString를 호출합니다. 사실 ZonedDateTime은 시간대 이름을 대괄호로 추가하여 표준을 현명하게 확장합니다. 36 :

2016-09-12T01

String output = zdt.toString(); 
55-04 : 00 [미국/몬트리올]를 java.time 클래스 DateTimeFormatter에 대한 스택 오버플로를 검색, 다른 형식으로 문자열을 생성하려면

.