2013-03-07 3 views
3

아카이브에 보관할 수 있도록 날짜를 파일에 추가하려고합니다. 이 형식의 날짜를 원합니다 : mmddhhmmssmmddhhmmss 형식의 자바 날짜

그래서 파일 이름은 "cGroup0307131614"입니다. 단지 타임 스탬프를 추가하려고합니다. 필요하지 않지만 mmddhhmmss 형식이어야하지만 타임 스탬프를 유지하는 형식이어야합니다. 59 : 30.252

java.util.Date date= new java.util.Date(); 
    System.out.println(new Timestamp(date.getTime())); 

하지만 O/P가 14 2013년 3월 7일이다

는 I는 FOLL 시도. 나는 콜론이나 특수 문자를 공백으로 사용하고 싶지 않다.

+5

'타임 스탬프'를 사용하지 마십시오. ['SimpleDateFormat'] (http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html)을 사용하십시오. –

답변

5
SimpleDateFormat simpleDateFormat = 
      new SimpleDateFormat("MMddhhmmss"); 
String dateAsString = simpleDateFormat.format(new Date()); 
System.out.println(dateAsString); 

출력 :

0307114712 
+0

다른 결과가 나올 경우를 대비하여 표준 시간대는 CET입니다. – user000001

1

TL; DR

ZonedDateTime 
    .now(ZoneId.of("America/Montreal")) 
    .format(DateTimeFormatter.ofPattern("MMddHHmmss")) 

java.time

현대적인 방법은 기존의 레거시 날짜 -을 대신하는 java.time 클래스 함께 시간 수업.

Instant

잡고 Instant 클래스 UTC에서 현재의 순간. Instant 클래스는 nanoseconds (소수 자릿수 9 자릿수까지)의 해상도로 UTC의 타임 라인에있는 순간을 나타냅니다.

Instant instant = Instant.now(); // UTC 

UTC를 사용하는 것이 가장 좋습니다. 그렇다면 형식이 더 유연한 OffsetDateTime으로 변환하십시오. ZoneOffset.UTC 상수를 지정하십시오.

OffsetDateTime odt = instant.atOffset(ZoneOffset.UTC); 

DateTimeFormatter

원하는 형식의 DateTimeFormatter을 정의합니다. 나는 그 해를 떠나지 않는 것이 좋습니다. 그러나 당신이 주장한다면, 여기에 우리가갑니다.

DateTimeFormatter f = DateTimeFormatter.ofPattern("MMddHHmmss"); 

해당 포맷터로 문자열을 생성하십시오.

ZonedDateTime

String output = odt.format(f); 

은 특정 지역의 wall-clock time의 렌즈를 통해 같은 순간을 볼 수있는 시간대를 적용합니다.

proper time zone namecontinent/region의 형식으로 지정하십시오. EST 또는 IST과 같이 3-4 자 약어를 사용하지 마십시오. 표준 시간대가 아니며 고유하지 않습니다 (!).

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

위의 그림과 같이 DateTimeFormatter을 사용하여 문자열을 생성하십시오.

java.시간

java.time 프레임 워크는 Java 8 이상에 내장되어 있습니다. 이 클래스는 java.util.Date, .Calendar, & java.text.SimpleDateFormat과 같이 문제가있는 이전 legacy 날짜 - 시간 클래스를 대체합니다.

Joda-Time 프로젝트는 현재 maintenance mode에 있으며, java.time으로 마이그레이션하는 것이 좋습니다.

자세히 알아 보려면 Oracle Tutorial을 참조하십시오. 그리고 많은 예제와 설명을 위해 스택 오버플로를 검색하십시오. 사양은 JSR 310입니다.

어디에서 java.time 클래스를 얻을 수 있습니까?

  • Java SE 8SE 9 이후
    • 내장한다.
    • 번들로 구현 된 표준 Java API의 일부입니다.
    • Java 9에는 몇 가지 사소한 기능과 수정 사항이 추가되었습니다.
  • Java SE 6 및 java.time 기능의 대부분
  • Android
    • ThreeTenABP 프로젝트 적응 ThreeTen - 백 포트 구체적 안드로이드 (상술 한).
    • How to use…을 참조하십시오.

ThreeTen-Extra 프로젝트는 추가 클래스와 java.time를 확장합니다. 이 프로젝트는 향후 java.time에 추가 될 수있는 가능성을 입증합니다. 여기에 Interval, YearWeek, YearQuartermore과 같은 유용한 클래스가 있습니다.