java - 字符串的简单时间解析

标签 java

在下面的代码中,我需要得到一个解析异常。但程序以某种方式将其转换为有效日期。

但是,如果我将 dthours 设置为“07:0567”,则会出现解析错误。那么如何保持显示的确切格式。

谁能告诉我如果日期字符串偏离给定格式(“HH:MM:SS”)即使是单个字符,该怎么做才能抛出错误。

public static void main(String[] args) {

    String dthours="07:4856:35563333";
    SimpleDateFormat df = new SimpleDateFormat("HH:MM:SS"); 
    try
    {
        Date d = df.parse(dthours);
        System.out.println("d "+d);
    }
    catch (ParseException e)
    {
        System.out.println("parseError");

    }

最佳答案

将 df.setLenient() 设置为 false,这样 SimpleDateFormat 将在这种情况下抛出解析异常。

public static void main(String[] args)
{
    String dthours = "07:4856:35563333";
    SimpleDateFormat df = new SimpleDateFormat("HH:MM:SS");
    df.setLenient(false);
    try
    {
        Date d = df.parse(dthours);
        System.out.println("d = " + d);
    }
    catch (ParseException e)
    {
        System.out.println("parseError");
    }
}

上面的代码片段将为该输入打印“parseError”。

关于java - 字符串的简单时间解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12072496/

相关文章:

java - 如何在两点之间填充数组列表?

java - 在类的构造函数中完成类的主要工作有什么问题吗?

java - 推荐代码重用

java - 字符串初始化问题

java - Apache CXF 客户端 soap 故障处理

java - 如何将我的 Activity 背景设为白色?

java - 即时将数据流式传输到速度模板

java - 如何在 Android 中连接到 MongoDB 数据库?

java - 如何使用 java 库从 Amazon AWS EC2 实例获取标签

java - 将AffineTransform应用于TexturePaint