我想知道如何在Java中将字符串格式化为指定的模式。例如:
the source string: 01021234
the desired ouput: 01/02/1234
我已经跟随了MaskFormatter rabit洞,但它被证明是徒劳的。有人能告诉我应该使用什么功能吗?任何帮助是极大的赞赏。
请参阅示例代码:
private static Date prepData(String date, String time) {
try {
if (date != null || !date.equals("")) {
if (date.contains("/")) {
return new Date(date + " " + time.substring(0, time.indexOf('.')));
}else{
MaskFormatter mk = new MaskFormatter("##/##/####");
mk.setValidCharacters("1234567890");
System.out.println(mk.valueToString(date));
}
} else {
return null;
}
} catch (Exception ex) {
}
return null;
}
答案 0 :(得分:0)
去String.format它有几个选项
答案 1 :(得分:0)
如果您尝试格式化日期,请使用Java中的DateFormatter
答案 2 :(得分:0)
您可以尝试使用SimpleDateFormat:
http://javatechniques.com/blog/dateformat-and-simpledateformat-examples/
答案 3 :(得分:0)
这是我选择去的方式,因为我发现MaskFormatter WAY太难了:
private static Date prepData(String date, String time) {
try {
if (date != null || !date.equals("")) {
if (date.contains("/")) {
return new Date(date + " " + time.substring(0, time.indexOf('.')));
}else{
String d = String.format("%s/%s/%s", date.substring(0, 2),date.substring(2, 4),date.substring(4));
String t = String.format("%s:%s %s", time.substring(0, 2),time.substring(2, 4),time.substring(4));
return new Date(d + " " + t);
}
} else {
return null;
}
} catch (Exception ex) {
}
return null;
}