2012-07-28 3 views
3

나는이 생산 아래의 코드를 가지고 : 내가 원하는 것입니다SimpleDateFormat - RegEx를 사용해야합니까?

2012-07-28 17:30:23 

합니다. 그러나 변수에 할당하기 위해 모든 숫자를 추출하려면 RegEx를 작성해야합니까, 아니면 SimpleDateFormat에서 간단히 추출 할 수있는 방법이 있습니까?

SimpleDateFormat dateFormatUCT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
dateFormatUCT.setTimeZone(TimeZone.getTimeZone("UCT")); 

//Time in UCT 
String date = dateFormatUCT.format(new Date()); 

System.out.println(date); 
+1

당신이 예를 포함하십시오 –

+0

[''parse()'] (http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html#parse%28java.lang.String,% 20java.text.ParsePosition % 29) SimpleDateFormat 메서드를 사용하면 날짜의 문자열 표현 만있을 수 있습니다. – nkr

답변

9

날짜가 있습니다. GregorianCalendar에 경우 변환하고, GregorianCalendar를에 모든 분야를 물어

GregorianCalendar cal = new GregorianCalendar(TimeZone.getTimeZone("UCT")); // or UTC? 
cal.setTime(theDate); // if you want something other than the current date 
int year = cal.get(Calendar.YEAR); 
int month = cal.get(Calendar.MONTH) + 1; // months start at 0, duh! 
... 
+0

왜 달 + 1? 0 = Calendar.JANUARY – Reimeus

+1

형식이 지정된 날짜 문자열과 동일한 번호를 원하면 1 월에 1을 원하기 때문에 (GregorianCalendar의 디자이너를 제외한 모든 사용자가 원하는대로). –

5

당신은 정규식이 필요하지 않습니다. 날짜를 가져와 캘린더에주고 난 다음 get() 메소드를 사용하여 각 필드를 가져옵니다.

Calendar c = Calendar.getInstance(TimeZone.getTimeZone("UTC")); 
c.setTime(new Date()); 

System.out.println(c.get(Calendar.YEAR)); 
System.out.println(c.get(Calendar.MONTH)); 
System.out.println(c.get(Calendar.DATE)); 

+0

시간과 초도 얻을 수 있습니까? –

+1

물론 가능합니다. 왜 javadoc을 확인하지 않습니까? –

1

당신은 AFAIK SimpleDateFormat에서 그들을 추출 할 수 없습니다,하지만 당신은 그 get(Calendar.{DAY_OF_MONTH|MONTH|YEAR|HOUR|MINUTE|SECOND}) 방법을 사용하여 날짜 구성 요소를 추출 Java.util.Calendar를 사용할 수 있습니다. Calendar 개체는 날짜가 걸리는 setTime() 메서드를 제공합니다. 따라서 동일한 날짜를 사용하여 SimpleDateFormat을 사용하여 서식을 지정하고 Calendar을 사용하여 날짜 구성 요소를 추출 할 수 있습니다.

1

1. 사용 split() 방법

2가 이런 식으로 작업을 수행 ... 당신이 variable..can에 할당 할 무엇 수

String s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); 

    String[] arr = s.split(" "); 

    String newDStr = arr[0]; 

    String newTStr = arr[1]; 

    String[] DateArr = newDStr.split("-");  // Holds Date values. 
    String[] TimeArr = newTStr.split(":");  // Holds Time values 
+0

이것은 내가 지금 어떻게 그랬는지입니다. 그러나 그것을하는 것이 먼 길을 보인다. 시간과 날짜를 모두 얻는 것이 가장 빠른 방법입니까? –

+0

가장 빠른 것은 확실하지 않지만 논리를 구축하기에 좋은 점은 ... 그는 .... –

관련 문제