我不知道为什么我得到不同JSON日期值的相同值。 这是我用JSON日期格式解析日期值的代码:
package com.jsondate.parsing;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
public class JSONDateParsing extends Activity {
/** Called when the activity is first created. */
String myString;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv = new TextView(this);
//Date d = (new Date(1266029455L));
//Date d = (new Date(1266312467L));
Date d = (new Date(1266036226L));
//String s = d.getDate() + "-" + d.getMonth() + "-" + d.getYear() + d.getHours() + d.getMinutes() + d.getSeconds();
// SimpleDateFormat sdf=new SimpleDateFormat("yyyy MMM dd @ hh:mm aa");
//Toast.makeText(this, d.toString(), Toast.LENGTH_SHORT);
Log.e("Value:", d.toString());
myString = d.toString();
String []words = myString.split(" ");
for(int i = 0;i < words.length; i++)
Log.e("Value:", words[i]);
myString = words[2] + "-" + words[1] + "-" + words[5] + " " + words[3];
tv.setText(myString);
setContentView(tv);
}
}
答案 0 :(得分:2)
据我所知,没有标准的方式来表示JSON中的日期。看起来您收到的是一个整数值,表示自1970年1月1日00:00:00 GMT以来已经过的秒的数量。这与Date(long date)
构造函数所期望的有些不同。从纪元开始,构造函数期待毫秒。您需要将JSON中的值乘以1000才能正确使用Date
。
long jsonDate = 1266036226L;
Date date = new Date(jsonDate * 1000);
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss");
String stringDate = dateFormat.format(date);
以下是您给出的示例的不同表示形式。它们符合您的期望吗?
请注意SimpleDateFormat
的默认行为是使用本地时区。在我的情况下,这是GMT-0500。可以通过调用setTimeZone
方法指定不同的时区。
答案 1 :(得分:0)
var d1 = ui.item.IssueDate;
var d = new Date(parseInt(d1.slice(6, -2)));
var Issdate = ("0" + (d.getMonth() + 1)).slice(-2) + '/' + ("0" + d.getDate()).slice(-2) + '/' + d.getFullYear().toString();
$('#IssueDate').val(Issdate);