代码之家  ›  专栏  ›  技术社区  ›  Chris Knight

有什么简单的方法可以取消约会吗?

  •  3
  • Chris Knight  · 技术社区  · 15 年前

    我有一大堆这样的日期:

    String date = "Wed Sep 15 16:31:05 BST 2010";
    

    我想把它转换回日期或日历对象。在我去重新发明轮子之前,有没有什么简单的方法可以做到这一点,最好在JDK中出现?

    3 回复  |  直到 15 年前
        1
  •  8
  •   Bozho    15 年前

    使用 SimpleDateFormat

    String format = "EE MMM dd HH:mm:ss zz yyyy";
    SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.US);
    Date result = sdf.parse(date);
    

    或者,正如jonskeet所建议的,您可以使用JodaTime的 DateTimeFormat -模式应该是相同的。但JodaTime似乎不支持BDT/BST/BDST时区别名。

        2
  •  3
  •   Jon Skeet    15 年前

    好吧,就是这样 java.text.DateFormat SimpleDateFormat 子类)-但我个人建议您使用 Joda Time 相反。

    尤其是乔达时代的 DateTimeFormatter 类是线程安全的,不像 -因此,您可以使用适当的模式创建单个实例,并从任何线程使用它。此外 DateTimeFormat 类充当一个工厂,其中有许多预设模式 ISODateFormat

    最后,Joda Time只是一个更好的日期和时间API。这并不完美,但它是 比内置的更好 Date Calendar

    日期格式

        3
  •  1
  •   Jigar Joshi    15 年前

    SimpleDateFormat

      public static void main(String[] args) {
     try {    String str_date="11-June-07";
             DateFormat formatter ; 
         Date date ; 
              formatter = new SimpleDateFormat("dd-MMM-yy");
                  date = (Date)formatter.parse(str_date);    
                   System.out.println("Today is " +date );
        } catch (ParseException e)
        {System.out.println("Exception :"+e);    }    
    
       }  
    

    JodaTime

    import org.joda.time.format.*;
    import org.joda.time.*;
    
    ...    
    
    String dateString = "2009-04-17 10:41:33";
    
    // parse the string
    DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
    DateTime dateTime = formatter.parseDateTime(dateString);
    
    // add two hours
    dateTime = dateTime.plusHours(2); // easier than mucking about with Calendar and constants
    
    System.out.println(dateTime);