2012-07-28 114 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

要分配給variable..can什麼號碼,你請包括一個例子 – 2012-07-28 17:34:33

+0

看看['parse()'](http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html#parse%28java.lang.String,%當您只有日期的字符串表示形式時,SimpleDateFormat的方法是20java.text.ParsePosition%29)。 – nkr 2012-07-28 17:38:58

回答

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 2012-07-28 18:01:01

+1

因爲如果他想要格式化的日期字符串中的相同數字,他希望1月份(因爲除了GregorianCalendar的設計師想要的世界上的每個人)。 – 2012-07-28 18:02:38

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

這是否允許您獲得時間和秒數? – 2012-07-28 17:42:54

+1

當然可以。你爲什麼不檢查javadoc? – 2012-07-28 17:44:01

1

不能從SimpleDateFormat提取它們AFAIK,但你可以使用Java.util.Calendar使用其get(Calendar.{DAY_OF_MONTH|MONTH|YEAR|HOUR|MINUTE|SECOND})法提取日期組件。 Calendar對象提供了一個採用日期的方法setTime()。因此,您可以使用相同的日期格式使用SimpleDateFormat並使用Calendar來提取日期組件。

1

使用split()方法

2.做這樣的......

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

這就是我目前所做的。但是這似乎還有很長的路要走。這是同時獲得時間和日期的最快方法嗎? – 2012-07-28 17:43:21

+0

不知道最快,但這是建設邏輯的好東西......他他.... – 2012-07-28 17:44:36

相關問題