我是Java的新手,我正在尝试从与日期相关的用户输入字符串中提取值,并将其拆分为 DD-MM-YYYY 格式。
我尝试使用以下代码:
String inputString = "s.param1";
String[] arraySplit_3 = inputString.split("-");
for (int i=0; i < arraySplit_3.length; i++){
System.out.println(arraySplit_3[i]);
}
s.param1
获取用户的输入,我使用单独的excel文件。
如果s.param1 = 15-05-2010
我希望得到这个输出:
DD:15
MM:05
YYYY:2010
有没有办法创建这样的方法?
答案 0 :(得分:2)
使用java.time.LocalDate
解析此问题。
// dd: Day of Month
// MM: Month of year
// yyyy: year, four digits
DateTimeFormatter format = DateTimeFormatter.ofPattern("dd-MM-yyyy");
LocalDate date = LocalDate.parse(inputString);
System.out.printf("DD: %d%nMM: %d%nYYYY: %n",
date.getDayOfMonth(), date.getMonthValue(), date.getYear());
答案 1 :(得分:1)
你几乎就在那里,但也许不打扰使用循环
String inputString = "15-05-2010";
String[] arraySplit_3 = inputString.split("-");
System.out.println("DD: " + arraySplit_3[0]);
System.out.println("MM: " + arraySplit_3[1]);
System.out.println("YYYY: " + arraySplit_3[2]);
但如果你想要更奇特的东西寻找SimpleDateFormat
答案 2 :(得分:1)
为什么你不分析日期/日历对象?
String input = "15-05-2010";
SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");
Date date = format.parse(input);
Calendar calendar = Calendar.getInstance() ;
calendar.setTime(date);
System.out.println(calendar.get(Calendar.YEAR));
System.out.println(calendar.get(Calendar.MONTH));
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
答案 3 :(得分:1)
如果您的s.param1
是变量,它在String中获取日期,那么您不应该在引号中使用它。否则它将是String。并且变量名称不能带点。可能是sParam1
但是,当您设置日期而不是s.param1
时,您创建的方法应该起作用。
// input "15-05-2010"
String inputString = sparam1;
String[] arraySplit_3 = inputString.split("-");
for (int i=0; i < arraySplit_3.length; i++){
System.out.println(arraySplit_3[i]);
}
输出将是:
15个
05
2010
如果您想在数字之前添加一些字符,请不要使用 for
循环。
像这样使用它:
// ...
if (arraySplit_3 > 2) {
System.out.println("DD: " + arraySplit_3[0]);
System.out.println("MM: " + arraySplit_3[1]);
System.out.println("YYYY: " + arraySplit_3[2]);
}
然后输出:
DD:15
MM:05
YYYY:2010
答案 4 :(得分:0)
如果你想使用一个循环,我会建议你在这里创建分割值的spearated方法我有一个示例代码
public class licz {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("15-05-2010");
list.add("18-02-2015");
extractValues(list);
}
private static void extractValues(List<String> list) {
int change = 0;
for (int i=0; i < list.size(); i++) {
String[] split = list.get(i).split("-");
for (String splitElement : split) {
switch (change) {
case 0:
System.out.println("DD: " + split[0]);
change++;
break;
case 1:
System.out.println("MM: " + split[1]);
change++;
break;
case 2:
System.out.println("YYYY: " + split[2]);
change=0;
break;
}
}
}
}
}