我的回复是
"pickTime": "Tue Oct 25 03:57 PM"
我的编码如下:
SimpleDateFormat curFormater = new SimpleDateFormat("E MMM dd hh:mm a");
SimpleDateFormat dateFormater = new SimpleDateFormat("E MMM dd");
SimpleDateFormat timeFormater = new SimpleDateFormat("hh:mm a");
String time = jsonObj.optString("pickTime");
Date dateObj = curFormater.parse(time);
String newDateStr = dateFormater.format(dateObj);
String newTimeStr = timeFormater.format(dateObj);
问题是我在字符串time
中得到相同的值,但在dateobj中我得到了值
"sun oct 25 15.57 pm"
newDatestr as
"sun oct 25"
请提前帮助我解决这个问题
答案 0 :(得分:0)
这是1970年10月25日(Linux时间)。
你必须弄清楚如何将年份添加到日期,因为它没有采用当前年份。
取而代之的是默认值(linux时间从1970年1月1日开始)。
答案 1 :(得分:0)
您的回复不包含年份。所以你的输出结果不正确。
下面的代码正在试用中。
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
SimpleDateFormat curFormater = new SimpleDateFormat("E MMM dd hh:mm a yyyy");
SimpleDateFormat dateFormater = new SimpleDateFormat("E MMM dd");
SimpleDateFormat timeFormater = new SimpleDateFormat("hh:mm a");
String time = "Tue Oct 25 03:57 PM" + " " + calendar.get(Calendar.YEAR);
Date dateObj = null;
try {
dateObj = curFormater.parse(time);
} catch (ParseException e) {
e.printStackTrace();
}
Logger.logd(this, dateObj.toString());
String newDateStr = dateFormater.format(dateObj);
String newTimeStr = timeFormater.format(dateObj);
Logger.logd(this, newDateStr + " " + newTimeStr);
答案 2 :(得分:0)
SimpleDateFormat formatter =new SimpleDateFormat("EEE MMM dd hh:mm a");
Date date2 = formatter.parse("Tue Oct 25 03:57 PM");
long time = date2.getTime();
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(time);
cal.set(Calendar.YEAR, 2016);
String formatted = formatter.format(cal.getTime());
System.out.println(formatted);
@David Marciel是对的。你应该指定年份。
答案 3 :(得分:-1)
SimpleDateFormat curFormater = new SimpleDateFormat("E MMM dd hh:mm a");
这就是为什么你把E.
SimpleDateFormat curFormater = new SimpleDateFormat("EEE MM dd yyyy hh:mm a");
我认为这应该是格式化。