当前位置: 首页 > 面试题库 >

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

轩辕瑞
2023-03-14
问题内容

我正在使用一个表单小部件,供用户在文本输入中输入一天的时间(对于日历应用程序)。我想使用JavaScript(我们使用的是jQuery
FWIW)来解析用户输入到JavaScript Date()对象中的文本的最佳方法,以便我可以轻松地执行比较和其他操作。

我尝试了该parse()方法,但对于我的需求来说有点挑剔。我希望它能够成功地将以下示例输入时间(除了其他逻辑上相似的时间格式)解析为同一Date()对象:

  • 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

我认为我可能会使用正则表达式来拆分输入并提取要用于创建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应用程序中,有一个字段,用户应该在其中输入时间。我知道,我可以简单地将其作为一个普通的保存,在验证时,我可以检查值等等。。。 但我认为还有更好的方法。。 例如,如果这是一个日期问题,那么JXDatePicker(随附带)可以非常方便地使用。最终,用户选择的是一个日期。 同样,也必须有更好的时间选择方法。如果你知道更好的解决方案,会有人分享你的知识吗? 任何想法都值得赞赏。非常感谢

  • 问题内容: 如何将RSS提要中的pubDate解析为java中的Date对象。 RSS Feed中的格式:2010年4月24日,星期六,格林尼治标准时间 我目前所拥有的: 但是此代码将引发ParseException并显示消息Unparseable date 问题答案: 您可以使用class定义要解析的日期格式: 此外,对于非英语的,在解析英语日期时,请确保使用以下内容:

  • 问题内容: 我想知道将Java对象转换为xml的最佳或最广泛使用的api是什么。我在这个话题上还很新。您可以通过某种API调用来传递对象并返回xml吗?还是在需要通过拉出对象值来手动构造文档的地方更加繁琐? 我一直在阅读有关xerces,sax和jaxb的信息。我想继续沿着这条开源路线走。 谢谢! 问题答案: JAXB 绝对 是 解决方案。 为什么?好吧,它 位于JDK 6中 ,因此您永远不会发现

  • 我有一个ServerEndpoint,它将累加不同的JSON格式。由于每个消息类型只允许一个消息处理程序,因此我的一个解码器必须将消息转换为相应的Java对象。 在我的解码器中,我试图使用ObjectMapper类将累犯的消息转换为子类或子类(这会产生相同的接口)。ObjectMapper类有一个readValue方法,它需要我试图将json映射到的类型,当它不能转换为指定的类型时,它将抛出异常。

  • 问题内容: 我正在寻找一种库/方法来解析比通用xml解析库具有更多html特定功能的html文件。 问题答案: 这是一个敏捷的HTML解析器,它构建了一个读/写DOM并支持纯XPATH或XSLT(您实际上不必了解XPATH或XSLT来使用它,不用担心…)。这是一个.NET代码库,可让您解析“网络外” HTML文件。该解析器对“真实世界”格式的HTML十分宽容。对象模型与提出System.Xml的对

  • 问题内容: 我有一个应用程序,它读取带有大量数据行的CSV文件。我根据数据类型为用户提供了行数的摘要,但我想确保不会读取太多的数据行并导致OutOfMemoryErrors。每行转换为一个对象。有没有一种简便的方法以编程方式找出该对象的大小?是否有一个引用定义了一个原始类型和对象引用有多大VM? 现在,我的代码可以读取多达32,000行,但我还想让代码显示尽可能多地读取行,直到使用32 MB内存为