问题标签 [simpledateformat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何解析日期?
我正在尝试解析此日期,SimpleDateFormat
但它不起作用:
如果我用 strDate= 尝试这段代码"2008-10-14"
,我有一个肯定的答案。有什么问题?如何解析这种格式?
PS。我从 a 得到了这个日期,jDatePicker
并且没有关于如何修改用户选择日期时得到的日期格式的说明。
java - 为什么我不能在 java 中使用 SimpleDateFormat 得到正确的年份?
我试图解析MySql
格式中的数据,我遇到了SimpleDateFormat
. 我可以得到正确的日期和月份,但我得到了一个奇怪的结果:
输出:
我尝试将格式更改为YYYY-MM-dd
(出错)和yy-MM-dd
(什么也没做)。我在Android上编程,不知道是否重要。
现在,我使用拆分绕过了它,但它很脏并且阻止我使用 i18n 功能。
java - 为什么用 SimpleDateFormat("hh:mm aa") 解析 '23:00 PM' 返回上午 11 点?
为什么解析“23:00 PM”并SimpleDateFormat("hh:mm aa")
返回上午 11 点?
java - 如何将标准日期解析为 GMT?
有人可以给我看一段解析这个日期的java代码吗:
2009-08-05
进入这个 GMT 日期:
2009/217:00:00
====
到目前为止我所拥有的是:
但它不工作
java - 为什么新的 SimpleDateFormat 对象包含错误年份的日历?
我遇到了一种奇怪的行为,这让我很好奇,但还没有令人满意的解释。
为简单起见,我已将注意到的症状简化为以下代码:
当我运行此代码时,我得到与以下输出非常相似的内容:
"yyyy-MM-dd"
(如果我提供像SimpleDateFormat这样的有效格式字符串,也会发生同样的事情。)
原谅可怕的非环绕线,但这是比较两者的最简单方法。如果滚动到大约 2/3 处,您会看到日历的 YEAR 值分别为 1929 和 2009。(还有一些其他差异,例如一年中的星期、星期和 DST 偏移量。)两者显然都是 GregorianCalendar 的实例,但它们不同的原因令人费解。
据我所知,格式化程序在格式化传递给它的 Date 对象时会产生准确的结果。显然,正确的功能比正确的参考年份更重要,但这种差异仍然令人不安。我不认为我必须在全新的日期格式化程序上设置日历才能获得当前年份......
我已经在使用 Java 5(OS X 10.4,PowerPC)和 Java 6(OS X 10.6,Intel)的 Mac 上进行了测试,结果相同。由于这是一个 Java 库 API,我假设它在所有平台上的行为都相同。对这里正在发生的事情有任何见解吗?
(注意:这个 SO 问题有些相关,但不一样。)
编辑:
下面的答案都有助于解释这种行为。事实证明,SimpleDateFormat的 Javadocs实际上在某种程度上记录了这一点:
“对于使用缩写年份模式(“y”或“yy”)进行解析,SimpleDateFormat 必须解释相对于某个世纪的缩写年份。它通过将日期调整为 SimpleDateFormat 实例时间之前的 80 年和之后的 20 年来实现这一点被建造。”
因此,他们并没有对解析日期的年份感到好奇,而是默认将内部日历设置回 80 年。该部分本身没有记录,但是当您了解它时,所有部分都可以组合在一起。
java - 使用 SimpleDateFormat 的不一致日期解析
我真的在这个问题上摸不着头脑。我已经使用SimpleDateFormat
s 一段时间了,但现在,使用 SimpleDateFormat 解析日期是(仅有时)完全错误的。
具体来说:
打印字符串Wed Aug 19 00:00:00 EDT 2009
。有没有搞错?- 它甚至不会一直解析到错误的日期!
更新:这很好地修复了它。你不知道吗,这在其他一些地方也被滥用了。一定喜欢调试别人的代码:)
java - Java 日期格式,允许 - / 或 . 作为日期内的分隔符
解析可以采用以下格式之一的日期的最佳方法是什么
无需创建 3 个 SimpleDateFormat 并针对每个进行解析。
谢谢
java - SimpleDateFormat 和基于语言环境的格式字符串
我正在尝试根据给定的语言环境以不同的方式在 Java 中格式化日期。例如,我希望英语用户看到“Nov 1, 2009”(格式为“MMM d, yyyy”),挪威用户看到“1. nov. 2009”(“d. MMM. yyyy”)。
如果我将语言环境添加到 SimpleDateFormat 构造函数,月份部分可以正常工作,但其余部分呢?
我希望我可以将与语言环境配对的格式字符串添加到 SimpleDateFormat,但我找不到任何方法来做到这一点。是否有可能或者我需要让我的代码检查语言环境并添加相应的格式字符串?
java - 时区、日历和 SimpleDateFormat 的奇怪问题
让我们考虑以下代码:
运行此代码段时,我有以下输出:
为什么我得到不同的时区?
请注意,如果我将第一个日期设置为 8 月,将第二个日期设置为 9 月,则两种情况下的输出都将显示相同的时区:
将显示:
我正在使用 Java 1.6.0_14
java - 什么可能导致此 SimpleDateFormat 格式错误?
我有一个日期作为 java.sql.Timestamp 存储在数据库中。日期为“2010-01-20T19:10:35.000Z”,相当于 1264014635743 毫秒。
不知何故,与开发机器相比,生产机器上的日期格式不同。
格式化日期的代码是:
dev 中生成的输出是正确的“2010-01-20”。但是在产品中我有“2010-01-21”,一天后!
当然,由于错误发生在产品服务器上,我的调试选项受到限制......
我已经仔细检查过,两台服务器都有相同的时间和时区。两个时钟都与 ntp 服务器同步。
[更新] prod 中的数据库的值为:日期字段的“10-01-20 19:10:35,743000000”