import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;
public class TimeTest {
public static String fromCalendar(final Calendar calendar) {
Date date = calendar.getTime();
String formatted = new SimpleDateFormat("EEE MMM dd yyyy hh:mm:ss 'GMT'Z (z)", Locale.ENGLISH)
.format(date);
return formatted.substring(0, 22) + "" + formatted.substring(22);
}
/** Get current date and time formatted as ISO 8601 string. */
public static String now() {
return fromCalendar(GregorianCalendar.getInstance());
}
/** Transform ISO 8601 string to Calendar. */
public static Calendar toCalendar(final String iso8601string)
throws ParseException {
Calendar calendar = GregorianCalendar.getInstance();
String s = iso8601string.replace("Z", "+00:00");
try {
s = s.substring(0, 22) + s.substring(23);
} catch (IndexOutOfBoundsException e) {
throw new ParseException("Invalid length", 0);
}
Date date = new SimpleDateFormat("EEE MMM dd yyyy hh:mm:ss 'GMT'Z (z)", Locale.ENGLISH).parse(s);
calendar.setTime(date);
return calendar;
}
public void test(){
}
public static void main(String args[])throws Exception{
String strTime=fromCalendar(GregorianCalendar.getInstance());
System.out.println(strTime);
Calendar can=toCalendar(strTime);
System.out.println(can.getTime());
}
}
输出结果:
Fri Aug 08 2014 01:13:45 GMT+0800 (CST)
Fri Aug 08 01:13:05 CST 2014