【发布时间】:2013-08-19 04:43:55
【问题描述】:
我得到一个日期,包括(- 或 / 或空格),格式为 dd-mm-yyyy 或 dd.MMM.yy,例如
dd.MM.yyyydd-MM-yydd MM yyyy
即使用户输入年份的最后两位数,如何将其转换为我的格式 dd MM yyyy 我必须将其转换为 4 位数字?
【问题讨论】:
我得到一个日期,包括(- 或 / 或空格),格式为 dd-mm-yyyy 或 dd.MMM.yy,例如
dd.MM.yyyydd-MM-yydd MM yyyy
即使用户输入年份的最后两位数,如何将其转换为我的格式 dd MM yyyy 我必须将其转换为 4 位数字?
【问题讨论】:
所以你想要:
将所有 / 替换为空格 全部替换 - 用空格 最后一个空格后替换为 4 位数字假设本世纪 13 -> 2013
然后使用 SimpleDateFormat.parse
【讨论】:
您可以查看Apache Commons LangDateUtils,它允许您使用一系列不同的日期模式解析日期String。
simple 使用SimpleDateFormat 来完成实际工作,但是当您想尝试使用多种格式而不是自己循环时,它会变得更容易。
一旦您将其恢复为Date 值,您就可以使用SimpleDateFormat 来格式化Date,无论您想要什么
【讨论】:
试试这样的。
Scanner sc=new Scanner(System.in);
System.out.println("Enter your date: ");
String[] format={"dd.MM.yyyy", "dd-MM-yy","dd MM yyyy"};
for (String i : format)
{
try
{
Date date=new SimpleDateFormat(i).parse(sc.nextLine());
System.out.println(new SimpleDateFormat("dd MM yyyy").format(date) );
}
catch (ParseException e) {
}
}
现场演示here.
您可以将SimpleDateFormat 添加到format array。然后这将转换为"dd MM yyyy" 格式。
【讨论】: