【问题标题】:Can I parse a date to fit a String Array?我可以解析日期以适应字符串数组吗?
【发布时间】:2011-11-02 10:35:50
【问题描述】:

我的构造函数中有一个字符串数组,它应该使用缓冲读取器读取 .txt 文档中的一行。它包含字符串 int´s 和两个日期。我的结构如下所示:

Private String Name;
Private int Number;
Private Date BDate;

String[] splitsarray = line.split("%");     
this.Name= splitsarray [0];  
this.Number= Integer.parseInt(splitsarray [1]);

我不想做像this.BDate= splitsarray [2] 这样的事情,但我不知道如何让它发挥作用。

对我有什么提示或技巧吗?

【问题讨论】:

    标签: java arrays parsing date split


    【解决方案1】:

    SimpleDateFormat 构造函数参数中传递正确的日期模式。

    SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); 
    this.BDate = formatter.parse(splitsarray [2]); 
    

    【讨论】:

    • 谢谢它几乎如我所愿。但是为什么格式包含时间,为什么将100911转换成Sat Oct 09 00:00:00 CEST 2010
    • @Handsken:你没有通过时间。因此时间值指向 00:00:00
    • @Handsken:不要关心其他只是文本表示的事情。你不需要关心时间部分
    • okj 我明白了,但是如果我不想打印时间,我可以排除它吗?
    • @Handsken:使用相同的格式化程序,如下所示:System.out.println(formatter.format(BDate));
    【解决方案2】:

    您需要查看 JDK 文本格式类: http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

    或者,考虑使用 Joda Time 之类的东西,它是一个外部依赖项,但具有丰富的 API。

    一个例子:

    String date = "2011-11-05T09:00:00";
    java.text.SimpleDateFormat fmt = new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
    java.util.Date d = fmt.parse(date);
    System.out.println(d);
    //Sat Nov 05 09:00:00 GMT 2011
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-04
      • 2012-10-28
      • 2020-02-24
      • 2012-03-04
      • 1970-01-01
      • 2013-11-25
      • 2019-04-27
      相关资源
      最近更新 更多