有个Calendar 类型的数据,值为:2008-12-04T09:30:47-05:00
现在想把它转换成日期类型。想得到值:2008-12-04 09:30:47
Calendar  datetime
Date dt=datetime.getTime();
System.out.println(dt);
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(dt));输出的两个值:
Thu Dec 04 22:30:47 CST 2008
2008-12-04 22:30:47请高手帮解决一下,
这里出现22时,可能与时区有关吧。因为数据是西五区,而我们这是东八区,相差了十三个小时,请问是不是这个问题啊?
如果处理才能忽略掉时区呢?

解决方案 »

  1.   


    System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(dt));你试试看是这个不?
      

  2.   

    Exception in thread "main" java.lang.IllegalArgumentException: Illegal pattern character 'c'
      

  3.   

    看看Calendar类的函数:static Calendar getInstance() 
              使用默认时区和语言环境获得一个日历。 
    static Calendar getInstance(Locale aLocale) 
              使用默认时区和指定语言环境获得一个日历。 
    static Calendar getInstance(TimeZone zone) 
              使用指定时区和默认语言环境获得一个日历。 
    static Calendar getInstance(TimeZone zone, Locale aLocale) 
              使用指定时区和语言环境获得一个日历。 
      

  4.   

    4楼那个代码,本来是想在显示时, 突出 hh  的,结果CSDN没有处理出来。
    4楼本来想写的代码是:System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(dt));
    我想请教下楼主,你的Calendar实例怎么得到的?
      

  5.   

    通过xmlBean从xml文件中读出来的。
    Calendar 类型是xsd文件中定义的。
      

  6.   


    try {
    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssZ");
    Date a = sf.parse("2008-12-04T09:30:47-05:00");

    SimpleDateFormat sff = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    TimeZone t = TimeZone.getTimeZone("GMT-05");
    sff.setTimeZone(t);
    String s = sff.format(a);
    System.out.println(s);
    } catch (ParseException e) {
    e.printStackTrace();
    }
      

  7.   


    String s = "2008-12-04T09:30:47+05:00";
    if (s.contains("+")) {
    s = s.substring(0, s.lastIndexOf("+"));
    } else {
    s = s.substring(0, s.lastIndexOf("-"));
    }
    s = s.replace("T", " ");
    System.out.println(s);
      

  8.   

    static Calendar getInstance(TimeZone zone)