Java中带时区的日期

Java中带时区的日期,java,date,datetime,simpledateformat,Java,Date,Datetime,Simpledateformat,我的要求是为Java中的日期字段提供“YYYYMMDDHHMMSS.XXX[gmt offset[:tz name]]”日期格式(例如:20140425053117.694[+5.30:IST])。 我可以简单地使用这个SimpleDataFormat类来实现这一点,它返回一个字符串作为输出。但我希望输出为具有上述模式的“日期””对象 我怎样才能做到这一点,请帮助 我想这就是你想要的: SimpleDateFormat isoFormat = new SimpleDateFormat("yyyy

我的要求是为Java中的日期字段提供“YYYYMMDDHHMMSS.XXX[gmt offset[:tz name]]”日期格式(例如:20140425053117.694[+5.30:IST])。 我可以简单地使用这个SimpleDataFormat类来实现这一点,它返回一个字符串作为输出。但我希望输出为具有上述模式的“日期””对象


我怎样才能做到这一点,请帮助

我想这就是你想要的:

SimpleDateFormat isoFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
isoFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = isoFormat.parse("2010-05-23T09:01:02");

java.util.Date
对象封装了一个
long
值,该值表示从一个历元开始的毫秒数。简单地说,您可以将
Date
类看作是存储表示日期和时区信息的
long
数字的方便方法

无论何时要显示日期,都可以使用任何方式对其进行格式化,例如使用
SimpleDateFormat

在JDK1.1之前,可以使用
java.util.Date
解析和格式化日期。从JDK1.1开始,java.util.Date的解析和格式化相关方法已被弃用


在Date类的页面上阅读更多内容

然后将其保留为日期,并在需要显示时使用SimpleDateFormat。朋友们,我希望此“YYYYMMDDHHMMSS.XXX[gmt offset[:tz name]]”格式作为日期对象,而不是全部作为字符串数据类型,因为我使用的是库“OFX4J”其中它需要一个日期对象作为输入,并生成一个Xml元素,其形式与我提到的相同!!那么您不需要做任何事情,因为OFX4J将正确格式化它。仅供参考,Java8中的新java.time包默认使用类似的格式。此格式是标准ISO 8601的扩展,附加时区名称。示例:
2007-12-03T10:15:30+01:00[欧洲/巴黎]
OFX4J没有给我这个“20140425053117.694[+5.30:IST]”格式。它给了我这个“20140306075536.012”格式!如果您能告诉我是否可以使用OFX4J itslef实现我想要的模式,那就太好了@nosCorrection:
java.util.Date
没有内部时区信息,根据规范只引用UTC时区,而其
toString()
-方法使用系统时区作为输出。为了澄清Meno Hochschild的注释,toString方法应用JVM的默认时区。通常JVM的默认时区与主机操作系统的时区相同,但不一定相同。看见