库里斯托 2023-06-15 19:44 采纳率: 87.6%
浏览 20
已结题

关于”输入时间“的问题,如何解决?

import java.sql.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws Exception {
        //see();
        add();
    }

    private static void see() throws SQLException {
        //1.注册驱动
        //Class.forName("com.mysql.jdbc.Driver");
        //2.获取连按对象

        String url = "jdbc:mysql:///test";
        String username = "root";
        String password = "000";
        Connection conn = DriverManager.getConnection(url, username, password);
        //3,定义SQL

        String sql2 = "select * from application;";


        //4.获取执行对象
        Statement stmt = conn.prepareStatement(sql2);


        //5.执行sql
        ResultSet rs2 = stmt.executeQuery(sql2);

        //创建集合
        List<Application> list = new ArrayList<>();

        //6.处理结果
        while (rs2.next()){
            Application application = new Application();
            String stu_username = rs2.getString("stu_username");
            String tea_username = rs2.getString("tea_username");
            String title = rs2.getString("title");
            String des = rs2.getString("des");
            Date atime = rs2.getDate("atime");
            LocalDateTime time = rs2.getTimestamp("time").toLocalDateTime();

           //赋值
            application.setStu_username(stu_username);
            application.setTea_username(tea_username);
            application.setTitle(title);
            application.setDes(des);
            application.setAtime(atime);
            application.setTime(time);

            list.add(application);//存入集合
        }

        System.out.println(list);

        //7.释放资源
        rs2.close();
        stmt.close();
        conn.close();
    }

    private static void add() throws Exception {
        Scanner sc = new Scanner(System.in);
        //连接
        String url = "jdbc:mysql:///test";
        String username = "root";
        String password = "000";
        Connection conn = DriverManager.getConnection(url, username, password);

        //定义插入的内容
        System.out.print("请输入用户名:");
        String stu_username = sc.next();
        String tea_username = sc.next();
        System.out.print("请输入标题:");
        String title = sc.next();
        System.out.print("请输入描述:");
        String des = sc.next();

        System.out.print("请输入验收时间:");
        String input = sc.next();

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        sdf.setLenient(false); // 禁用 lenient 模式

        Date atime = null;
        try {
            atime = sdf.parse(input);
            System.out.println(atime.toString());
        } catch (ParseException e) {
            System.out.println("日期格式不正确!");
        }


        LocalDateTime time = LocalDateTime.now();

        //定义sql语句
        String sql1 = "insert into application(stu_username,tea_username,title,des,atime,time) values(?,?,?,?,?,?);";

        PreparedStatement pstmt = conn.prepareStatement(sql1);

        // 修改为
        pstmt.setString(1, stu_username);
        pstmt.setString(2, tea_username);
        pstmt.setString(3, title);
        pstmt.setString(4, des);
        pstmt.setDate(5, new java.sql.Date(atime.getTime()));
        pstmt.setTimestamp(6, Timestamp.valueOf(time));

        //执行sql
        int count = pstmt.executeUpdate();   //影响的行数
        //处理结果
        System.out.println(count > 0);
        //释放资源
        pstmt.close();
        conn.close();
    }
}

86行到98行,无法正常输入时间,总是输出格式错误。

  • 写回答

2条回答 默认 最新

  • Huazie 全栈领域优质创作者 2023-06-15 19:51
    关注

    next() 遇到空格结束,所以只获取了 年月日的部分

    img

    改成:

    sc.nextLine();
    System.out.print("请输入验收时间:");
    String input = sc.nextLine();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月23日
  • 已采纳回答 6月15日
  • 创建了问题 6月15日

悬赏问题

  • ¥15 关于github的项目怎么在pycharm上面运行
  • ¥15 内存地址视频流转RTMP
  • ¥100 有偿,谁有移远的EC200S固件和最新的Qflsh工具。
  • ¥15 找一个QT页面+目标识别(行人检测)的开源项目
  • ¥15 有没有整苹果智能分拣线上图像数据
  • ¥20 有没有人会这个东西的
  • ¥15 cfx考虑调整“enforce system memory limit”参数的设置
  • ¥30 航迹分离,航迹增强,误差分析
  • ¥15 Chrome Manifest扩展引用Ajax-hook库拦截请求失败
  • ¥15 用Ros中的Topic通讯方式控制小乌龟的速度,走矩形;编写订阅器代码