1

我在 android 应用程序中工作,我使用 c# 作为服务器,使用 RavenDB 作为数据库。我正在检索以下 json 数组作为来自服务器的响应

"GridRecords":[{ 
"AddedTime":"2013-07-03T19:16:02.3694","TransactId":"CTRF315687490298",
"Status":2,"OtherPartyAccountNo":"364210000001","AmountPaid":100.0,
"AmountRecieved":0.0,"ClosingBalance":674.54,"TransType":8,
"Narration":null,"AddedBy":"Trader-9787457361-Vinoth"}]

我需要dd-mm-YYYYjava 中的格式,但是当我将字符串 (2013-07-03T19:16:02.3694) 解析为 java datetime 时,我收到一条异常消息,例如无法解析。

实际上我的代码看起来像,

        static SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
            static SimpleDateFormat currentformatter = new SimpleDateFormat(
                    "dd-MM-yyyy");
    JSONArray ArrayData = data.getJSONArray("GridRecords");
    for (int i = 0; i < ArrayData.length(); i++) {

        JSONObject reportItem = ArrayData.getJSONObject(i);
       Date receiptdate = Date.valueOf(currentformatter.format(formatter.parse(reportItem.getString("AddedTime").toString())));
}
4

2 回答 2

2

您的格式字符串与输入日期字符串不匹配:

// 2013-07-03T19:16:02.3694 <-- date string
static SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

您需要首先使用SimpleDateFormatwith 模式解析日期字符串yyyy-MM-dd'T'HH:mm:ss.SSSSSS,然后您可以使用模式格式化Date对象。记住是几个月,代表分钟。dd-MM-YYYYMMmm

String formattedDate = new SimpleDateFormat("dd-MM-YYYY").format(
                      new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS")
                      .parse(reportItem.getString("AddedTime")));
于 2013-07-05T13:48:42.637 回答
0

在 C# 端使用 Json.NET,在 Java 端使用 Gson。

我和你有同样的问题,他们两个一起工作得很好。

于 2013-07-05T14:05:51.307 回答