将用户日期数据输入格式化为大端序、小端序和中端序等格式


public class DateFormat {
public static void main(String[] args) {
int year;
int day;
int month;
String format = "";
System.out.println("Enter a  year: " );
Scanner scanner = new Scanner(System.in);
year = scanner.nextInt();
Scanner scanner2 = new Scanner(System.in);
System.out.println("Enter a Month: " );
Scanner scanner1 = new Scanner(System.in);
month = scanner2.nextInt();
System.out.println("Enter a Day: ");
day = scanner1.nextInt();
System.out.println("Chose Format: (b/l/m) ");
Scanner scanner3 = new Scanner(System.in);
format = scanner3.nextLine();
}
}

我设法向 ueser 询问日、月和年,询问用户首选哪种格式,但我如何让程序按所选顺序显示结果?

如何制定每个选项的代码?

最后,如何确保将任何像 7 这样的单个输入数字更改为 07?

这些格式称为大端序、小端序和中端序、yyyy/mm/dd/mm/yyyy,甚至 mm/dd/yyyy。我正在尝试使格式从方法返回为字符串 这将年、月、日和格式作为输入。

正如Andreas已经指出的那样,你应该做这样的事情:

LocalDate date = LocalDate.of(year, month, day);
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(getFormatter(format));
System.out.println(date.format(dtf));
private static String getFormatter(String format) {
switch (format){
case "b":
return "yyyy/MM/dd";
case "l":
return "dd/MM/yyyy";
case "m":
return "MM/dd/yyyy";
}
throw new IllegalArgumentException("wrong format choosen: " + format);
}

请记住,输入可能无效,例如 -1 或 35

最新更新