Reputation: 2821
I am trying to convert a string to DateTime format. My string is 23 Feb 2014 14:00:48
. I want to send to the server in 2011-04-08T12:29:00.000Z
format.
I am doing as below
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();
}
But I am getting parse exception.
Upvotes: 0
Views: 10733
Reputation: 28484
Try this tested working demo
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 "";
}
}
output:
Converted Date : 2014-02-23T14:00:48.000Z
Upvotes: 9
Reputation: 3351
You have to Parse the given date with right format.
String TIMEZONE_DATE_TIME_PARSE="dd MMM yyyy HH:mm:ss";
And then format it with SimpleDateFormat like sdf.format(date)
String TIMEZONE_DATE_TIME_FORMAT = "yyyy-MM-dd'T'HH:mm:ssz";
Upvotes: 0
Reputation: 3497
You need 2 SimpleDateFormats to convert Date string. For Example:
String str = departetforget.getText().toString();
String MY_FORMAT = "dd MMM yyyy HH:mm:ss";
String TIMEZONE_DATE_TIME_FORMAT = "yyyy-MM-dd'T'HH:mm:ssz";
try {
Date date = new SimpleDateFormat(MY_FORMAT, Locale.US).parse(str);
String timezoneString = new SimpleDateFormat(MY_FORMAT, Locale.US).format(date);
} catch (ParseException e) {
System.out.println("printing date Exception ==> "+e.toString());
e.printStackTrace();
}
Upvotes: 2
Reputation: 3004
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
String newFormat = formatter.format(testDate);
String date = "2011-11-12 16:05:06";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/mm/dd HH:MM:SS");
Date testDate = null;
try {
testDate = sdf.parse(date);
}catch(Exception ex){
ex.printStackTrace();
}
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
String newFormat = formatter.format(testDate);
System.out.println(".....Date..."+newFormat);
Upvotes: 0