我在这里很新。我习惯使用C#,但我是java的新手。 我试图从jSpinner(日期模型)中获取一小时的字符串,但我不断收到错误。我已经研究过这里已经给出的一些答案......但它仍然无效。
uurStr返回“2014年1月25日16:09:49 CET 2014”,我试图让“16:09”退出。但到目前为止没有运气......任何想法? 在“uurDate = sdf.parse(uurStr);”上抛出异常部分。
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
SimpleDateFormat outputFmt = new SimpleDateFormat("HH:mm");
String uurStr = String.valueOf(jSpinner1.getValue());
Date uurDate = null;
try {
uurDate = sdf.parse(uurStr);
} catch (ParseException ex) {
Logger.getLogger(frmBackEnd.class.getName()).log(Level.SEVERE, null, ex);
}
String uur = outputFmt.format(uurDate);
JOptionPane.showMessageDialog(null, uur);
答案 0 :(得分:0)
为了正确解析工作日和时区信息(两者都是特定于语言的),有必要按如下方式设置语言环境:
final SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.US);
如果未设置区域设置,则会采用JRE的默认区域设置。这可能是操作系统默认语言环境或用户特定语言环境,或者语言环境可能已被另一个Locale.setDefault(Locale.XXXX)
的Java类覆盖。在任何这些情况下,这可能是正确的区域设置。
也就是说,设置时区通常更安全,或者如果要解析的字符串中没有时区,则可能会收到错误的时间信息:
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
在您的示例中,时区可用,您无需担心。