我是新来的。我习惯于使用C#,但我是java的新手。我试图从一个jSpinner (日期模型)中获取一个小时字符串,但是我总是会出错。我调查了一些已经给出的答案。但还是没用。
uurStr返回“2014年CET 2014年1月25日16:09:49”,我正在试着把"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);发布于 2014-01-25 16:53:45
为了正确解析工作日和时区信息(两者都是特定于语言的信息),有必要将区域设置如下:
final SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.US);如果没有设置区域设置,则采用JRE的默认区域设置。这可能是OS默认区域设置或特定于用户的区域设置,或者区域设置可能已被另一个具有Locale.setDefault(Locale.XXXX)的Java类覆盖。在任何一种情况下,这都可能是正确的区域设置。
也就是说,设置时区通常更安全,或者如果时区在要解析的字符串中不可用,您可能会得到错误的时间信息:
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));在您的示例中,时区是可用的,您不必担心这个问题。
https://stackoverflow.com/questions/21352380
复制相似问题