Java SimpleDateFormat Similar To C#
Solution 1:
There are 2 things to be changed here. First the format.
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSXXX"); // This should work for you. Though I must say 6 "S" is not done. You won't get milliseconds for 6 precisions.
Date date = new Date();
String dateString = dateFormat.format(date); // You need to use "dateString" for your JSON
And the second thing, the formatted date is the which you need to put in your JSON and not parse it back to Date
. But Date
doesn't have a formatting option. You can only get a String representation of the Date in the format you need using SDF.
Ex:-
public static void main(String[] args) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSXXX");
Date date = new Date();
String dateString = dateFormat.format(date); // You need to use "dateString" for your JSON
System.out.println(dateString); // Output
}
and the output for this is
2013-09-16T15:39:16.000257+05:30
6 digit precision in milliseconds is not possible. If you see the docs of SDF in Java 7, you can find this:-
The highlighted example is the one you need, but with 6 milliseconds precision, which is not possible. Thus, you can use 6 S but it will just add 3 leading zeroes before the actual 3 millisecond digits! This is the only workaround possible in your case!
Edit:-
The SimpleDateFormat
of Android does not contain X
. It provides Z
instead. Therefore your new format string will be
yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZZZZ
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZZZZ"); // For Android
Solution 2:
The problem is with the "Z:Z" Try "X" this instead :
public static Date getTodayDate() {
SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss.SSSX");
Date date = new Date();
String dateString = dateFormat.format(date);
Date today = parseFromNormalStringToDate(dateString);
return today;
}
Post a Comment for "Java SimpleDateFormat Similar To C#"