2016-08-13 87 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());