栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Java中解析这种类型的日期格式?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Java中解析这种类型的日期格式?

另一个答案是,由于您似乎只专注于

String
拆开(恕我直言,这不是一个好主意)。我们假设字符串是有效的ISO8601。您可以假设它 始终
是您引用的形式,还是仅适用于8601?如果是后者,则您必须像这些家伙那样应付一堆场景。

他们提出来验证8601替代方案的正则表达式是:

^([+-]?d{4}(?!d{2}b))((-?)((0[1-9]|1[0-2])(3([12]d|0[1-9]|3[01]))?|W([0-4]d|5[0-2]) (-?[1-7])?|(00[1-9]|0[1-9]d|[12]d{2}|3([0-5]d|6[1-6])))([Ts]((([01]d|2[0-3]) ((:?)[0-5]d)?|24:?00)([.,]d+(?!:))?)?(17[0-5]d([.,]d+)?)? ([zZ]|([+-])([01]d|2[0-3]):?([0-5]d)?)?)?)?$

弄清楚如何挑出正确的捕获组,这让我显得有些呆滞。不过,以下将适用于您的特定情况:

import java.util.regex.Matcher;import java.util.regex.Pattern;public class Regex8601{  static final Pattern r8601 = Pattern.compile("(\d{4})-(\d{2})-(\d{2})T((\d{2}):"+         "(\d{2}):(\d{2})\.(\d{3}))((\+|-)(\d{2}):(\d{2}))");  //2010-09-18T10:00:00.000+01:00  public static void main(String[] args)  {    String thisdate = "2010-09-18T10:00:00.000+01:00";    Matcher m = r8601.matcher(thisdate);    if (m.lookingAt()) {      System.out.println("Year: "+m.group(1));      System.out.println("Month: "+m.group(2));      System.out.println("Day: "+m.group(3));      System.out.println("Time: "+m.group(4));      System.out.println("Timezone: "+m.group(9));    } else {      System.out.println("no match");    }  }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/515497.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号