您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

从Java用户输入中将时间解析为Date对象的最佳方法是什么?

从Java用户输入中将时间解析为Date对象的最佳方法是什么?

在您指定的输入上起作用的快速解决方案:

function parseTime( t ) {

   var d = new Date();

   var time = t.match( /(\d+)(?::(\d\d))?\s*(p?)/ );

   d.setHours( parseInt( time[1]) + (time[3] ? 12 : 0) );

   d.setMinutes( parseInt( time[2]) || 0 );

   return d;

}



var tests = [

  '1:00 pm','1:00 p.m.','1:00 p','1:00pm','1:00p.m.','1:00p','1 pm',

  '1 p.m.','1 p','1pm','1p.m.', '1p', '13:00','13', '1a', '12', '12a', '12p', '12am', '12pm', '2400am', '2400pm', '2400',

  '1000', '100', '123', '2459', '2359', '2359am', '1100', '123p',

  '1234', '1', '9', '99', '999', '9999', '99999', '0000', '0011', '-1', 'mioaw' ];



for ( var i = 0; i < tests.length; i++ ) {

  console.log( tests[i].padStart( 9, ' ' ) + " = " + parseTime(tests[i]) );

}

它也应该适用于其他一些品种(例如,即使使用了am,它仍然可以使用-例如)。显然,这很粗糙,但也很轻巧(例如,使用它比完整的库便宜得多)。

警告:该代码不适用于12:00 AM等。

java 2022/1/1 18:15:56 有474人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶