问题标签 [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.

0 投票
4 回答
161934 浏览

java - 如何在 Java 中使用 DateFormat 解析月份完整形式的字符串?

我试过这个:

错误:

Exception in thread "main" java.text.ParseException: Unparseable date: "June 27, 2007"

java 文档说我应该使用四个字符来匹配完整的形式。我只能在像“Jun”这样的缩写月份成功使用MMM ,但我需要匹配完整的形式。

文本:用于格式化,如果模式字母的数量为4个或更多,则使用完整的形式;否则,如果可用,则使用简短或缩写形式。对于解析,两种形式都被接受,与模式字母的数量无关。

https://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

0 投票
2 回答
5537 浏览

java - Java DateFormat 和 SimpleDateFormat 返回不正确的日期

今天是 2010 年 2 月 9 日,星期二,当我打印日期时,我得到了错误的日期:

打印行导致:“今天是 Sat Jan 09 00:00:00 CST 2010”

肯定不是 1 月 9 日星期六,而是 2 月 9 日星期二。我假设我做错了什么,所以有人可以告诉我这里出了什么问题吗?我必须手动设置星期几吗?

更新 说明:我不想在今天初始化,new Date()因为我希望将小时、分钟、秒和毫秒初始化为0. 这是必要的,因此我可以将用户输入的日期与今天进行比较:如果用户输入今天的日期并且我使用格式化程序构造一个 Date 对象,那么如果我用今天初始化new Date()并比较两个日期 - 今天将用户之后选定的日期(这是不正确的)。因此,我需要在今天开始时进行初始化,而无需使用 hr/min/sec/ms。

0 投票
1 回答
1920 浏览

datetime - Groovy Sql 和 SimpleDateFormat 帮助

在我的数据库中,我有一个列类型:日期时间。
列数据示例:2009-02-03 19:04:23.0

我正在使用 :SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");来定义我的日期格式。

我正在使用 groovySQL 读取表,并且对于每一行,我正在添加一个新的 SampleJ 对象(映射到一个新表 - SampleJ)。

这是我的关闭:

当我检查我的临时表“SampleJ”时,我的所有日​​期都与“${it.date_created}”不匹配。
所有日期都设置为“new Date()”(关闭执行时间)。

通过调试器:
“${it.date_created}”定义为“Tue Feb 03 19:04:23 CST 2009”,对应于 (2009-02-03 19:04:23.0)。我应该有这个约会!

我该如何解决这个问题?我没有错误,只是日期错误。
有没有一种简单的方法可以在 SampleJ 中定义我的日期?
addSample.dateCreated = dateFormat.parse("${it.date_created}") 的替代方法?

0 投票
1 回答
9223 浏览

java - 使用 TimeZone 和 SimpleDateFormat 进行日期解析/格式化在 DST 开关周围给出不同的结果

我在 Google 和 Stack Overflow 上浏览了多篇关于 TimeZone 和 SimpleDateFormat 的帖子,但仍然不明白我做错了什么。我正在处理一些遗留代码,并且有一个方法 parseDate,它给出了错误的结果。

我附上了我正在尝试使用的示例 JUnit 来调查问题。

第一种方法(testParseStrangeDate_IBM_IBM)使用 IBM 的实现来格式化parseDate方法的输出。Sun 实现的第二种格式输出。

使用 Sun 的 SimpleDateFormat 使我们的时间相差一个小时(这可能与夏令时有关)。将默认 TimeZone 设置为 IBM 的实现修复了 parseDate方法(只需取消注释 setupDefaultTZ 方法中的 3 行)。

我确定这不是错误,但我做错了什么。

0 投票
2 回答
1122 浏览

java - SimpleDateFormat 在 jdk1.4 上返回不正确的日期

这会在 jdk1.4 上给出“2500-01-01 00:00:00”,这是不正确的,并在 jdk1.5 上返回 null

为什么这会在 jdk1.4 上给出“2500-01-01 00:00:00”?如果它无法解析日期,是否默认为该日期?

更新:

我知道如果我使用 20110731 它可以工作......但是如果我通过 07312011,它会在 1.4 中给出一些随机日期,在 1.5 中给出 null 所以,我的问题是

1.4中,如果传递的日期与格式不对应,是否默认为2500-01-01?

为什么它在 1.5 上返回 null?

0 投票
3 回答
3742 浏览

java - Java SimpleDateFormat 和 compareTo

我有一个关于 SimpleDateFormat 类和 java.util.Date 的 compareto 方法的问题:

我正在构建一个 Date 对象,然后我格式化,最后我解析格式化的字符串并与原始日期进行比较。

结果:

原始日期:Mon Jan 25 15:43:23 CET 2010 格式化日期:2010.jan.25 03:43:23 868 originalDate compareTo parseTo parsedDate: 1

为什么我总是得到“1”?为什么原始日期比解析日期更重要?

0 投票
1 回答
30227 浏览

java - 在 SimpleDateFormat 模式字符串中使用字母字符

是否可以在 SimpleDateFormat 模式字符串中包含字母字符?

我正在尝试创建一个格式字符串,其中在时间之前包含字母“T”,例如:

2003-11-15 T 09:30:47-05:00。

我目前正在yyyy-MM-ddhh:mm:ssZ用作模式字符串。

如果我将其更改为yyyy-MM-ddThh:mm:ssZ它将引发异常,因为保留了“A”到“Z”和“a”到“z”。

有没有不涉及使用两个 DateFormats 的解决方案?

0 投票
5 回答
3830 浏览

java - 为什么 Java SimpleDateFormat().parse() 打印奇怪的甲酸盐?

我的输入是字符串,格式如下:

我的代码是:

输出是:

我不确定这一天(太阳)是从哪里来的?还是(AST)?为什么日期是错误的?我只是想保持原始字符串日期的相同格式并将其转换为Date对象。

我正在使用 Netbeans 6.8 Mac 版本。

0 投票
12 回答
168920 浏览

java - SimpleDateFormat 用 'Z' 文字解析日期

我正在尝试解析如下所示的日期:

2010-04-05T17:16:00Z

这是每个http://www.ietf.org/rfc/rfc3339.txt的有效日期。'Z' 字面量(引号)“暗示 UTC 是指定时间的首选参考点。

如果我尝试使用 SimpleDateFormat 和这种模式来解析它:

它将被解析为 Mon Apr 05 17:16:00 EDT 2010


SimpleDateFormat无法使用以下模式解析字符串:

我可以明确设置TimeZone以在 上使用SimpleDateFormat以获得预期的输出,但我认为这没有必要。有什么我想念的吗?是否有替代日期解析器?

0 投票
4 回答
163312 浏览

java - 将日期字符串解析为 java.util.Date 时出现非法模式字符“T”

我有一个日期字符串,我想使用 java Date API 将其解析为正常日期,以下是我的代码:

但是我有一个例外:java.lang.IllegalArgumentException: Illegal pattern character 'T'

所以我想知道我是否必须拆分字符串并手动解析它?

顺便说一句,我试图在 T 的两侧添加一个单引号字符:

它也不起作用。