关于java:如何将日期字符串解析为整数变量?

How to parse date string into integer variables?

本问题已经有最佳答案,请猛点这里访问。

我有一个String,格式是这样的:"dd-MM-yyyy"。我试图将字符串的dd部分保存到整数day变量中。我想对MMyyyy部分的String做同样的事情。我可以想象,当"/" char处于for循环中的当前索引时,使用for循环来解析String来分离String

如何将包含日期的String分别拆分为日、月和年,并将其拆分为可供我操作的整数变量?也许将这个String转移到一个Date对象会使处理它的成员方法或字段(只是一个想法)变得更容易。


1
2
3
4
5
        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:

public String[] split(String regex) Splits this string around matches
of the given regular expression. This method works as if by invoking
the two-argument split method with the given expression and a limit
argument of zero. Trailing empty strings are therefore not included in
the resulting array.

阅读更多信息:string.split


你可以使用

1
2
3
4
    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

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


好的,请指定您使用的语言。

基本上,每种语言都提供了函数来解析字符串到日期,然后得到日、月和年。

在JS中,

1
2
3
4
var d = new Date("dd-MM-yyyy")
d.getDay();
d.getMonth();
d.getYear();

同样,在Java中,

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


你会发现String.split(String regex)方法对你的案件有用。

因此,在您的例子中,您可以将字符串拆分,然后使用拆分部分:

1
2
3
4
5
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]);