-2

我想知道如何在 Java 中将字符串格式化为指定的模式。例如:

the source string: 01021234
the desired ouput: 01/02/1234

我已经关注了 MaskFormatter 兔子洞,但事实证明它是徒劳的。有人能告诉我我应该使用什么功能吗?任何帮助是极大的赞赏。

请参阅示例代码:

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;
}
4

4 回答 4

0

去 String.format 它有几个选项

于 2012-07-31T18:18:27.970 回答
0

您可以尝试 SimpleDateFormat:

http://javatechniques.com/blog/dateformat-and-simpledateformat-examples/

于 2012-07-31T20:01:28.167 回答
0

如果您尝试格式化日期,请在 Java 中使用 DateFormatter

于 2012-07-31T18:19:26.853 回答
0

这是我选择的方式,因为我发现 MaskFormatter 方式太难了:

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;
}
于 2012-08-01T18:12:30.413 回答