gpt4 book ai didi

java - 如何在 Java/Android 中解析 JSON 日期时间

转载 作者:行者123 更新时间:2023-12-01 16:51:43 24 4
gpt4 key购买 nike

我到处都找过了,但我找不到任何关于在 android 中解析日期时间 json 对象的信息。

我正在尝试转换此 JSON 2016-08-12T20:07:59.518451 以获取ONLY这样的时间 20:07并将其格式化为正确的时区 UTC/GMT +1 小时。

我可以用 javascript 实现,但无法在 Java/Android 中实现。

有没有一种方法可以为我处理这个问题,或者我需要使用正则表达式来获取正确的时间?

编辑:这是代码。 ExpectedArrival 是带有 json 日期/时间的日期/时间,我只想获取 UTC/GMT +1 小时时区的时间。

public class JSONTaskArrivals extends AsyncTask<String, String,List<ArrivalItem>> {

@Override
protected List<ArrivalItem> doInBackground(String... params) {
//json
HttpURLConnection connection = null;
BufferedReader reader = null;

try {
URL url = new URL(params[0]);
connection = (HttpURLConnection) url.openConnection();
connection.connect();

InputStream stream = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(stream));
StringBuffer buffer = new StringBuffer();
String line = "";

while((line = reader.readLine()) != null){
buffer.append(line);
}

String finalJSON = buffer.toString();
JSONArray parentArray = new JSONArray(finalJSON);
List<ArrivalItem> arrivalItems = new ArrayList<>();
int time = 0;
for (int i = 0; i < parentArray.length(); i++){
JSONObject finalObject = parentArray.getJSONObject(i);

ArrivalItem item = new ArrivalItem();
item.setDestination(finalObject.getString("destinationName"));
item.setEstimated(finalObject.getString("expectedArrival"));
time = finalObject.getInt("timeToStation")/60;
if(time < 1){
item.setLive("Due");
}else{
item.setLive(Integer.toString(time)+" mins");
}

arrivalItems.add(item);
}

return arrivalItems;


} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
} finally {
if (connection != null){
connection.disconnect();
}
try {
if (reader != null){
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}

@Override
protected void onPostExecute(List<ArrivalItem> result) {
super.onPostExecute(result);
ArrivalsAdapter adapter = new ArrivalsAdapter(ArrivalsActivity.this, R.layout.arrivals_row, result);
lv = (ListView) findViewById(R.id.arrivals_listView);
lv.setAdapter(adapter);
}
}

最佳答案

你应该这样做:

  1. 该 json 有一个 key:val 和日期,然后获取日期,(它肯定在 json 中作为字符串)
  2. 然后将该字符串解析为日期。
  3. 使用SimpleDateFormatter并将重构的日期格式化为您想要/需要的形式。

关于java - 如何在 Java/Android 中解析 JSON 日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38935300/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com