这里有两件事要改变。先说格式。
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
第二件事,格式化日期是您需要放入 JSON 而不是将其解析回Date
. 但Date
没有格式化选项。您只能使用 SDF 以您需要的格式获取日期的字符串表示形式。
前任:-
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
}
这个输出是
2013-09-16T15:39:16.000257+05:30
以毫秒为单位的 6 位精度是不可能的。如果您在 Java 7 中看到 SDF 的文档,您可以找到以下内容:-
突出显示的示例是您需要的示例,但精度为 6 毫秒,这是不可能的。因此,您可以使用 6 S,但它只会在实际的 3 毫秒数字之前添加 3 个前导零!在您的情况下,这是唯一可能的解决方法!
编辑:-
Android的SimpleDateFormat
不包含X
. Z
相反,它提供了。因此,您的新格式字符串将是
yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZZZZ
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZZZZ"); // For Android