|
|
1
2
我发现如下:
产生以下结果:
我真的觉得这有点奇怪。但是,我想这表明,对您的问题的答案是,在解析之后,只需在格式化程序上调用gettimezone。 编辑: 上面是用sun的jdk 1.6运行的。 |
|
|
2
1
@ Ed Thomas: 我尝试了一些与你的例子非常相似的方法,得到了非常不同的结果:
输出:
好像
查看dateformat和simpledateformat的源代码,似乎
|
|
|
3
1
我建议你去看看 Joda时间日期和时间API . 我最近被转换为它的信徒,因为它往往比Java中的日期和时间的内置支持优越得多。特别是,你应该看看 达蒂梅区 班级。希望这有帮助。 |
|
|
4
1
DR
Java.时间现代的方法是使用java.time类。问题和其他答案使用麻烦的旧遗留日期时间类或joda时间项目,这两个类现在都被java.time类所取代。
定义一个
分配一个
最后,进行解析以获得
你可以从
See for yourself in IdeOne.com . 国际标准化组织8601
避免以这种方式交换日期时间数据
可怕的
格式。不要使用英语,不要用诸如天的名字之类的东西来修饰你的输出,也不要使用诸如
对于时区:指定
proper time zone name
格式为
若要将日期时间值序列化为文本,请仅使用 ISO 8601 格式。默认情况下,java.time类在解析/生成字符串以表示其值时使用这些格式。 关于java.time
这个
java.time
框架是在Java 8和之后构建的。这些类取代了麻烦的旧类
legacy
日期时间类,如
这个 Joda-Time 项目,现在在 maintenance mode ,建议迁移到java.time。 要了解更多信息,请参阅 Oracle Tutorial . 和搜索堆栈溢出的许多例子和解释。规格是 JSR 310 . 在哪里获得java.time类?
这个
ThreeTen-Extra
project使用其他类扩展java.time。这个项目是将来可能添加java.time的一个试验场。你可以在这里找到一些有用的类,比如
|
|
|
5
0
作为一个部分解决方案,您可以使用regex匹配来获取时区,因为您将始终在它前面有相同的文本。AM或PM。 我对Java时区的了解还不够,想让您了解它的最后一部分。 |
|
|
6
0
日期和日历的主要区别在于,该日期只是一个值对象,没有修改它的方法。所以它是为在某处存储日期/时间信息而设计的。如果使用日历对象,则可以在将其设置为持久性实体(该实体使用日期/时间信息执行某些业务逻辑)后对其进行修改。这是非常危险的,因为实体无法识别这种变化。 calendar类是为日期/时间上的操作而设计的,比如添加日期或类似的内容。 拿着你的例子玩我得到了以下信息:
输出:
这是你想要的结果吗? |
|
|
7
0
艾德说得对。您希望在分析时间之后在DateFormat对象上设置时区。
生产
|