Android:将字符串转换为Datetime格式 - 解析错误

tee*_*kib 0 android simpledateformat date-formatting

我正在尝试将字符串转换为DateTime格式.我的字符串是23 Feb 2014 14:00:48.我想以2011-04-08T12:29:00.000Z格式发送到服务器.

我正在做如下

String str = departetforget.getText().toString();
        System.out.println("printing date"+str);
        String TIMEZONE_DATE_TIME_FORMAT = "yyyy-MM-dd'T'HH:mm:ssz";
        try {
            Date date = new SimpleDateFormat(TIMEZONE_DATE_TIME_FORMAT, Locale.US).parse(str);
            System.out.println("printing parsed date "+date);
        } catch (ParseException e) {
            System.out.println("printing date Exception ==> "+e.toString());
            e.printStackTrace();
        }
Run Code Online (Sandbox Code Playgroud)

但我得到解析异常.

Bir*_*dia 9

试试这个测试的工作演示

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        System.out.println("Converted Date : " + convertDate("23 Feb 2014 14:00:48"));
    }

    private String convertDate(String date) {
        try {
            SimpleDateFormat format = new SimpleDateFormat("dd MMM yyyy hh:mm:ss");
            Date d = format.parse(date);
            SimpleDateFormat serverFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
            return serverFormat.format(d);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "";
    }

}
Run Code Online (Sandbox Code Playgroud)

输出:

转换日期:2014-02-23T14:00:48.000Z