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等。

2020-05-01

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值