如何从19921231中提取12个?我使用模数法还是什么?非常感谢。我知道如何获得1992年和31年,但棘手的部分是12.任何建议?
答案 0 :(得分:1)
如果您的输入字符串代表Date
,那么您可以
DateFormat df = new SimpleDateFormat("yyyyMMdd");
Date date = df.parse("19921231");
System.out.println(date.getMonth() + 1);
或者,您也可以将Calendar
类用作
Calendar cal = Calendar.getInstance();
cal.setTime(df.parse("19921231"));
System.out.println(cal.get(Calendar.DAY_OF_MONTH)); // 31
System.out.println(cal.get(Calendar.YEAR)); // 1992
System.out.println(cal.get(Calendar.MONTH) + 1); // 12
答案 1 :(得分:0)
你可以为四个字符,两个字符,两个字符进行正则表达式匹配。
或者您可以查看String上的substring方法。
但是,考虑到您的目的,我建议您调查SimpleDateFormat类
答案 2 :(得分:0)
假设这是一个总是这样的日期格式,为什么不使用subtring()方法(http://www.tutorialspoint.com/java/java_string_substring.htm)?
或许也可以查看一下,一旦你做了一点研究,这可能是最好的选择:http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
答案 3 :(得分:0)
使用子字符串。
例如,如果您有以下内容:
String string = "19921231";
String year = string.substring(0, 4);
String month = string.substring(4, 6);
String day = string.substring(6, 8);
System.out.println(year);
System.out.println(month);
System.out.println(day);
输出结果为:
1992
12
31
如果您希望在获得较小的部件后将它们转换回整数,您可以执行以下操作
int year_int = Integer.parseInt(year);
int month_int = Integer.parseInt(month);
int day_int = Integer.parseInt(day);
答案 4 :(得分:0)
你需要使用substring:
final int year = Integer.parseInt(str.substring(0, 4));
final int month = Integer.parseInt(str.substring(4, 6));
final int day = Integer.parseInt(str.substring(6));