例如,我得到了这个日期字符串:
Wed, 19 Oct 2016 12:00 PM CEST
SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy hh:m a zzz", Locale.US);
Unparseable date: "Wed, 19 Oct 2016 12:00 PM CEST" (at offset 26)
@Override
public WeatherData parseCurrentWeatherData(String jsonString) {
WeatherData weatherData = new WeatherData();
try {
JSONObject obj = new JSONObject(jsonString);
JSONObject mainObj = obj.getJSONObject("query").getJSONObject("results").getJSONObject("channel");
JSONObject condition = mainObj.getJSONObject("item").getJSONObject("condition");
Calendar cal = new GregorianCalendar();
SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy hh:m a z", Locale.US);
cal.setTime(sdf.parse(condition.getString("date")));
weatherData.setCalendar(cal);
} catch(JSONException | ParseException ex) {
Log.e("DataFetcher", ex.getLocalizedMessage());
}
return weatherData;
}
看起来Android无法解析某些时区。感谢@Burhanuddin Rashid的这种方法。
String strDate = condition.getString("date").replace("CEST", "GMT+0200");
此处的解决方案:不可更改的日期:“IST 2014年星期五10月10日23:11:07”(偏移量20)
public static void main(String[] args) throws ParseException {
String dateString = "Wed, 19 Oct 2016 12:00 PM CEST";
SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy hh:m a zzz", Locale.US);
Date date = sdf.parse(dateString);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
System.out.println(calendar);
}
同样的事情对我也有用。
确保所有的导入都是正确的
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
我尝试将字符串转换为日期。
当我试图解析发送到android客户端的日期字符串时,我得到了一个不可解析的日期。 这是个例外:
问题内容: 我正在尝试用正斜杠替换连字符,但结果是 我具有要转换的必要值,有人可以告诉我为什么它返回错误吗?另外,我想在格式的末尾附加一个,可以吗? 问题答案: 您需要先解析为正确的格式作为输入 然后您可以使用format()以其他格式打印它 并且不要期望类的方法返回格式化值,这是固定的实现
问题内容: 尝试转换日期格式时,出现一个异常:日期不可解析,并且不知道如何解决此问题。 我收到一个表示事件日期的字符串,并希望在GUI中以其他格式显示该日期。 我试图做的是以下几点: 不管怎么说 是假的。我想要以下格式的日期字符串: dd.MM.yyyy HH:mm:ss 输入的String示例如下: 2010-01-04 01:32:27 UTC 有谁知道如何将上面的示例日期(字符串)转换为字符
问题内容: 我正在尝试使用解析日期时间字符串,但我一直收到不可解析的日期异常。 这是我尝试解析的日期格式: 这是我正在使用的代码: 返回此错误: 据我所知,这是使用SimpleDateFormat类的正确方法,但是我不精通Java,所以我可能会弄错。有人知道我的问题是什么吗? 问题答案: 时区应为GMT-08:00或-0800(如Madcore Tom所说)。请参阅Java文档。 在Java 7中
我需要将字符串(以日期格式)转换为时间戳。 一开始我是这样做的。 我试着用另一种方法: 此时,我出现处分析文本“16 Jan 2020 11:02”