Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Java中使用DateFormat解析月份完整的表单字符串?

如何在Java中使用DateFormat解析月份完整的表单字符串?
EN

Stack Overflow用户
提问于 2010-02-07 17:31:42
回答 4查看 171.4K关注 0票数 71

我试过这个:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DateFormat fmt = new SimpleDateFormat("MMMM dd, yyyy");
Date d = fmt.parse("June 27, 2007");

错误:

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

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

文本:对于格式,如果图案字母的数目是4个或更多,则使用完整的表单;如果可用,则使用简短的表单。对于解析,两种表单都被接受,与模式字母的数量无关。

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2021-02-13 01:20:22

LocalDate来自java.time

使用来自LocalDate的java.time (现代java.time和time )作为日期

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("MMMM d, u", Locale.ENGLISH);
    LocalDate date = LocalDate.parse("June 27, 2007", dateFormatter);
    System.out.println(date);

输出:

2007-06-27

正如其他人已经说过的,当您的字符串使用英语时,请记住指定一个讲英语的语言环境。LocalDate是一天中没有时间的日期,因此比旧的Date类更适合您的字符串中的日期。尽管名为Date,但它并不代表一个日期,而是世界不同时区中至少有两个不同日期的时间点。

只有当您需要一个老式的Date来进行API,而您现在无法负担升级到java.time时,才可以这样转换:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    Instant startOfDay = date.atStartOfDay(ZoneId.systemDefault()).toInstant();
    Date oldfashionedDate = Date.from(startOfDay);
    System.out.println(oldfashionedDate);

在我的时区中输出:

2007年6月27日上午00:00:00

链接

Oracle教程:日期时间解释了如何使用java.time。

票数 11
EN

Stack Overflow用户

发布于 2010-02-07 17:43:26

您可能使用的是一个区域设置,其中月份名称不是“一月”、“二月”等,而是本地语言中的一些其他单词。

尝试指定您希望使用的区域设置,例如Locale.US

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DateFormat fmt = new SimpleDateFormat("MMMM dd, yyyy", Locale.US);
Date d = fmt.parse("June 27,  2007");

此外,您在日期字符串中有一个额外的空间,但实际上这对结果没有任何影响。不管用哪种方式都行。

票数 155
EN

Stack Overflow用户

发布于 2015-03-12 05:41:26

仅仅是为了将其扩展到新的Java8API:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DateTimeFormatter formatter = new DateTimeFormatterBuilder().appendPattern("MMMM dd, yyyy").toFormatter();
TemporalAccessor ta = formatter.parse("June 27, 2007");
Instant instant = LocalDate.from(ta).atStartOfDay().atZone(ZoneId.systemDefault()).toInstant();
Date d = Date.from(instant);
assertThat(d.getYear(), is(107));
assertThat(d.getMonth(), is(5));

更详细一些,但您也看到了所使用的日期方法被废弃了;-)继续前进的时间。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2219139

复制
相关文章
JavaApi高级编程(四)Date类以及如何使用
目录 一、Date的基本概念以及使用  案例一: 二、DateFormat的应用 1、DateFormat日期格式化类(抽象类) 2、功能:完成日期的显示格式化 案例二: 三、Calender类 1、日期数据的定制格式: 2、日期格式化方法: 3、日期/时间组件方法:  4、日期和时间模式 以上就是今天的内容,还请大佬对里面的内容稍作指点,谢谢*-* ---- 一、Date的基本概念以及使用  1、Date 类表示日期和时间(该类大部分方法已过时) 2、提供操纵日期和时间各组成部分的方法 3、Date
天蝎座的程序媛
2022/11/18
1.9K0
JavaApi高级编程(四)Date类以及如何使用
JAVA Calendar方法详解「建议收藏」
究竟什么是一个 Calendar 呢?中文的翻译就是日历,那我们立刻可以想到我们生活中有阳(公)历、阴(农)历之分。它们的区别在哪呢?
全栈程序员站长
2022/09/05
5250
Calendar 详解
究竟什么是一个 Calendar 呢?中文的翻译就是日历,那我们立刻可以想到我们生活中有阳(公)历、阴(农)历之分。它们的区别在哪呢?
哲洛不闹
2018/09/19
7640
Calendar 详解
究竟什么是一个 Calendar 呢?中文的翻译就是日历,那我们立刻可以想到我们生活中有阳(公)历、阴(农)历之分。它们的区别在哪呢?
哲洛不闹
2018/09/19
8780
第三阶段-Java常见对象:【第十一章 Date、DateFormat和Calendar类】
可以进行日期和字符串的格式化和解析,但是由于是抽象类,所以使用具体子类SimpleDateFormat。
BWH_Steven
2019/08/09
4050
Java Calendar类详解
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/132397.html原文链接:https://javaforall.cn
全栈程序员站长
2022/06/29
6690
java中json的使用和解析[通俗易懂]
  下载地址(maven仓库):https://mvnrepository.com/artifact/org.json/json/20180813
全栈程序员站长
2022/09/07
2.8K0
java中json的使用和解析[通俗易懂]
JAVA Calendar详解
究竟什么是一个 Calendar 呢?中文的翻译就是日历,那我们立刻可以想到我们生活中有阳(公)历、阴(农)历之分。它们的区别在哪呢?
全栈程序员站长
2022/07/01
4780
Android技能树 — 时间相关总体小结
发现很多开发人员做在时间相关的问题的时候,各有各的方法,然后对时间相关的处理,各种Java自带的时间相关类的知识面都不是很清楚,有时候看见他们在开发时候,都是一边使用到了,然后临时百度去处理时间相关的问题。
青蛙要fly
2019/09/09
8660
Android技能树 — 时间相关总体小结
编写 Java 程序,输入年份和月份,使用 switch 结构计算对应月份的天数。
说明:System.exit(status)是在System类中定义的,调用这个方法可以终止程序。参数status为 0 表示程序正常结束。一个非 0 的状态代码表示非正常结束。
白鹿第一帅
2021/03/02
6.5K0
编写 Java 程序,输入年份和月份,使用 switch 结构计算对应月份的天数。
【Java 基础篇】Java日期和时间格式化与解析指南:SimpleDateFormat详解
日期和时间在软件开发中经常被用到,无论是用于记录事件、计算时间间隔还是格式化日期以供用户友好的展示。Java 提供了强大的日期和时间处理工具,其中 SimpleDateFormat 类是一个重要的工具,用于格式化日期和时间,同时也支持解析日期和时间。本篇博客将深入探讨 SimpleDateFormat 类,帮助你了解如何使用它来处理日期和时间。
繁依Fanyi
2023/10/12
3K0
【Java 基础篇】Java日期和时间格式化与解析指南:SimpleDateFormat详解
java中interface的完整表述
我用一个工具:java Decompiler反编译工具查看jar包源码的时候,出现了以下代码:
Hongten
2018/09/13
8500
java中interface的完整表述
4、javascript中sort方法的完整解析
说起对数组的排序,大家能想到的应该是冒泡排序,快速排序,sort排序,以及希尔排序吧,但是可能对sort排序只停留再数组层面(每个元素均是数字或者字符串),事实上,它还可以对对象进行排序。
Qwe7
2022/06/18
6560
第55节:Java当中的IO流-时间api(下)-上
currentTimeMillis是用来返回当前时间的,单位以毫秒,其值的粒度取决于底层操作系统.它是与在1970年1月1日UTC之间的当前时间和午夜之间的差异.
达达前端
2019/07/03
1.2K0
第55节:Java当中的IO流-时间api(下)-上
工作流Activiti框架中表单的使用!详细解析内置表单和外置表单的渲染
Activiti中的表单 Activiti提供了一种方便而且灵活的方式在业务流程中以手工方式添加表单 对表单的支持有2种方式: 通过表单属性对内置表单进行渲染 通过表单属性对外置表单进行渲染 表单属性 业务流程相关联的所有信息: 包含自身的流程变量 通过流程变量的引用 Activiti支持存储复杂的Java对象作为流程变量: 序列化对象 Jpa实体对象 整个XML文档作为字符串 用户是在启动一个流程和完成用户任务时,与流程进行交互 表单需要某个UI技术渲染之后才能够与用户进行交互 为了能够使用不同U
攻城狮Chova
2022/01/22
1.5K0
Java当中的IO流-时间api(下)-上
currentTimeMillis是用来返回当前时间的,单位以毫秒,其值的粒度取决于底层操作系统.它是与在1970年1月1日UTC之间的当前时间和午夜之间的差异.
达达前端
2022/04/29
1.1K0
Java当中的IO流-时间api(下)-上
如何在受控表单组件上使用 React Hooks
React Hooks 是一个闪亮的新提案,将优化 90% 的 React 代码。 根据 Dan Abramov 的说法,Hooks 是 React 的未来。
三毛
2023/06/09
6190
如何在受控表单组件上使用 React Hooks
Java Date 和 Calendar
Java 语言的Date(日期),Calendar(日历),DateFormat(日期格式)组成了Java标准的一个基本但是非常重要的部分。日期是商业逻辑计算一个关键的部分,所有的开发者都应该能够计算未来的日期,定制日期的显示格式,并将文本数据解析成日期对象。  创建一个日期对象
阳光岛主
2019/02/19
5930
Java中Future的使用场景和解析
我们通常都是开启一个新的子线程去执行比较耗时的代码,这使用起来非常简单,只需要将耗时的代码封装在Runnable中的run()方法里面,然后调用thread.start()就行。但是我相信很多人有时候都有这样的需求,就是获取子线程运行的结果,比如客户端远程调用服务(耗时服务),我们有需要得到该调用服务返回的结果,这该怎么办呢?很显然子线程运行的run()方法是没有返回值。这个时候Future的作用就发挥出来了。
全栈程序员站长
2022/07/04
3660
Java中Future的使用场景和解析
点击加载更多

相似问题

只解析DateFormat Java中的年份

30

Java语言。无法使用DateFormat解析日期

31

解析DateFormat时的Java时区

92

DateFormat:带点的月份缩写

20

Java dateFormat不可解析日期异常

33
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文