简体   繁体   中英

Parsing String to Time makes 01:00:00

When I do the following:

String start = request.getParameter("startp");
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");  
long ms=0;
try {
    ms = sdf.parse(start).getTime();
} catch (ParseException e1) {
    e1.printStackTrace();
}
Time ts = new Time(ms);

it is inserted with this value 01:00:00 witch is not the correct one (entered by user).

I don't understand the error here. Please help. Thanks

First, it's not casting , it's parsing (I have updated the title and the tags accordingly). Second, as per the SimpleDateFormat API document two-digit 24h-hours are to be represented by HH , not by hh .

To nail the root cause better down, you'll have to update your question to include the actual values of start , ms and ts . Print them using System.out.println() or a logger. If all looks fine, then the problem is in the SQL or the DB table model, you need to ensure that you're setting it using PreparedStatement#setTime() and that the DB table column type is of at least TIME type.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM