2016-08-13 88 views
-3

我有一個String它的格式如下:"dd-MM-yyyy"。我試圖將dd部分字符串保存爲一個整數day變量。我想對StringMMyyyy部分也這樣做。我可以想象,只要"/" char位於for循環中的當前索引處,就可以使用for循環來解析String以分離String如何將日期字符串解析爲整型變量?

如何將包含日期的String分別分解爲日期,月份和年份,並將其轉換爲整數變量以供我操作?或許將這個String轉換爲Date對象會使它變得更容易,這是由於成員方法或字段可以處理這個(只是一個想法)。

+0

我不認爲這是一個重複的,但也許是一個不同的問題。 –

+0

重複:[Java:從日期獲取月整數](http://stackoverflow.com/q/7182996/642706)和[我想從Java日期獲得年,月,日等...](http:// stackoverflow .com/q/9474121/642706)和[獲取月份和年份的java日期問題](http://stackoverflow.com/q/13602552/642706)等等。 –

回答

3
 String date = "13-08-2016"; 
     String[] values = date.split("-"); 
     int day = Integer.parseInt(values[0]); 
     int month = Integer.parseInt(values[1]); 
     int year = Integer.parseInt(values[2]); 

可以使用String.split(String regex)方法來解析的日期的String陣列然後將每個值爲int。

的JavaDoc:

公共字符串[]分裂(字符串正則表達式)拆分該字符串周圍匹配給定正則表達式的 。此方法的工作方式如同調用 具有給定表達式的雙參數拆分方法以及零參數的限制 。尾隨的空字符串因此不包含在 的結果數組中。

更多在這裏閱讀:String.split

1

你會找到String.split(String regex)方法爲你的情況非常有用。

所以你的情況,你可以把字符串分割並使用分裂部:

String str = "20-04-2016"; 
String[] splitArray = str.split("-"); 
int day = Integer.parseInt(splitArray[0]); 
int month = Integer.parseInt(splitArray[1]); 
int year = Integer.parseInt(splitArray[2]); 
1

那麼請註明您所使用的語言..

基本上每一種語言提供的功能來解析字符串到日期,然後獲得日,月和年。

在JS,

var d = new Date("dd-MM-yyyy") 
d.getDay(); 
d.getMonth(); 
d.getYear(); 
在Java中

同樣,

DateFormat df = new SimpleDateFormat("mm/dd/yyyy"); 
Date startDate = df.parse(startDate); 
+0

這個問題有一個Java標籤。請妥善編輯您的答案 –

+0

@ cricket_007已編輯。 –

1

您可以使用

String dateStr = "14-08-2016"; 
    DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy"); 
    Date date = (Date)formatter.parse(dateStr); 
    System.out.println(date.getMonth()+1); 

與Java 8

DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("dd-MM-yyyy"); 
    LocalDate parsedDate = LocalDate.parse(dateStr, formatter1); 
    System.out.println(parsedDate.getMonth().getValue());