java - 日期和simpledateformat,输出错误

标签 java date simpledateformat

所以如果打印 01/18/2013 我得到 JUNE 01, 2014 或者如果我打印 08/18/2013 我得到 JUNE 08, 2014 我应该更改什么才能获得英文格式日期的正确输出?

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String s = reader.readLine();
        SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
        Date givenDate = formatter.parse(s);
        SimpleDateFormat formatterprint = new SimpleDateFormat("MMMM dd, yyyy", Locale.ENGLISH);
        System.out.println(formatterprint.format(givenDate).toUpperCase());

最佳答案

用于解析日期的模式是dd,MM,yyyy,这意味着日后跟逗号,后跟月,后跟逗号,后跟年。

您输入08/18/2013。 08 是有效日期,但 18 不是有效月份。并且您应该输入逗号,而不是斜杠。

由于您输入 18/2013 作为月份,因此它会被解释为 2013 年的第 18 个月,对应于 2014 年的第 6 个月(因为年份只有 12 个月):6 月。

关于java - 日期和simpledateformat,输出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22107407/

相关文章:

java - 震动检测计数器

java - Spring mvc 向其他包隐藏一个包

php - 检查当前时间是否在 PHP 中的某个时间之间?

javascript - 如何使用 Javascript 分解开始日期和结束日期之间的数据

python - 使用 Flask 的 jsonify 时,将 datetime.date 保留为 'yyyy-mm-dd' 格式

maven - Jersey 库错误(NoSuchMethod 然后 IncompleteClassChangeError)

java - Websphere 和 QOS 日志返回 : log-files are locked for rolling

java - 在Java中将“mm/yy”转换为“yyyy-mm-dd”

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

java - 使用 SimpleDateFormat 返回日历