四点:

如果可以的话,您更愿意使用Java 8中引入的较新的日期和时间类(并且还向后移植到Java 6和7)而不是旧的SimpleDateFormat。

您应确保提供的语言区域与星期几和日期字符串中的月份一致。

虽然不清楚来自the documentation,但我认为模式字符串中的MM是指两位数的月份数;对于三个月的缩写,您需要MMM。这可能是你得到ParseException的原因(虽然错误的语言环境也可能会给你一个)。

Capital Ys适用于工作日。这个错误很容易被忽视,因为一周和日历年通常只有接近新年的几天。对于日历年,您必须使用小写的ys。

以下是如何处理新的日期和时间类:

String dateString = "Fri Sep 21 15:23:59 CEST 2012";

DateTimeFormatter input = DateTimeFormatter.ofPattern("EEE MMM d HH:mm:ss z uuuu",

Locale.ROOT);

try {

LocalDateTime date = LocalDateTime.parse(dateString, input);

System.out.println(date.toString());

} catch (DateTimeParseException dtpe) {

System.err.println(dtpe.getMessage());

}这打印:

2012-09-21T15:23:59请填写适当的区域设置,而不是Locale.ROOT。 uuuu是签名年份:0对应于1 BC,-1到2 BC等。如果您确定年份是AD(当前时代),则可以使用yyyy。

您会注意到您想要的格式来自LocalDateTime.toString(),不需要任何明确的格式化。但是有另一种选择:

ZonedDateTime date = ZonedDateTime.parse(dateString, input);

System.out.println(date.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));使用ZonedDateTime而不是LocalDateTime的优点是它保留了日期字符串中的时区信息。如果您以后有需要,请选择此选项。

日历年和基于周的年份之间的差异在this question的答案中有解释。

如果您不能使用或不想使用较新的类,则与SimpleDateFormat一起使用的正确模式字符串位于Reimeus’ answer中。我仍然建议明确地给出语言环境,例如:

SimpleDateFormat input = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy",

Locale.UK);输出格式可能不需要区域设置,因为它不包含文本/单词,只包含数字。

java fri星期转_如何在Java中将“Fri Sep 21 15:23:59 CEST 2012”转换为“2012-09-21T15:23:59”?...相关推荐

  1. java中转json字符串_如何在Java中转义JSON字符串-Eclipse IDE技巧

    java中转json字符串 在Java应用程序中工作或进行JSON解析时,通常很常见的做法是从某些资源(例如RESTful Web服务)中复制粘贴JSON字符串,然后使用Jackson库解析JSON. ...

  2. java整数的因式分解_如何在Java中找到整数的质数-因式分解

    java整数的因式分解 编程课程中的常见家庭作业/任务之一是关于Prime Factorization. 要求您编写一个程序以找到给定整数的素因子 . 一个数字的素数因子是将精确地除以给定数字的所有素 ...

  3. Java poi 列移动_如何在java xssf中移動列poi

    如何將現有列數據和格式化到Apache POI中的下一列並將下一列移到右側.如何在java xssf中移動列poi 我試過了. 讓說我的代碼是這樣... XSSFCell oldCell = work ...

  4. java中为什么同步_如何在Java中同步工作

    如何在Java中同步工作 首先, 这是一个示例 : public class Deadlock { static class Friend { private final String name; p ...

  5. java 精确到微妙_如何在Java中以微秒精度测量时间?

    我在Internet上看到应该使用System.nanoTime(),但这对我不起作用-它为我提供了毫秒级的时间.我只需要函数执行前后的微秒,就可以知道需要多长时间.我正在使用Windows XP. ...

  6. java 方法当参数_如何在Java中将函数作为参数传递?

    如何在Java中将函数作为参数传递? 这个问题在这里已有答案: Java Pass方法作为参数                                     14个答案 是否可以将方法作为参 ...

  7. java 千位分隔符_如何在Java中设置千位分隔符?

    问题 如何在Java中设置千位分隔符?我有BigDecimal的String表示,我想设置千位分隔符并返回String. #1 热门回答(180 赞) 你可以使用格式功能","; ...

  8. java 判断是否换行_如何在java中检测换行符

    是的,我已经阅读了一些关于换行符的其他帖子,但他们没有帮助我.如何在java中检测换行符 我的Java程序应该读取一个.PHP文件,并将源代码分成逐行格式.问题是我似乎无法区分一个换行符和另一个换行符 ...

  9. java如何实例化集合_如何在java中实例化一个Queue对象?

    Queue是一个接口,这意味着你不能直接构造一个Queue . 最好的select是构造一个已经实现Queue接口的类,如下所示: AbstractQueue , ArrayBlockingQueue ...

最新文章

  1. C++ 操作64位系统,默认读取Wow6432Node子键的解决方法。
  2. systemtap调试linux内核源码,内核调试工具SystemTap:适合懒人的printk替代品
  3. Android listview实现单选变化的效果
  4. 推荐 四种优秀的数据库设计工具
  5. origin与matlab拟合的不同,Origin自定义模拟与matlab中cftool工具箱拟合结果比较 - 计算模拟 - 小木虫 - 学术 科研 互动社区...
  6. 记录一下Mac浏览器劫持searchbaron.com的经历
  7. Go语言系列——Go语言介绍
  8. 2023最新车道线综述!近五年文章全面盘点(几何建模/机器学习/深度学习)
  9. 3dsMax学习笔记08_VRayMtl材质制作陶瓷材质
  10. 【LINUX】libgd-GD库安装
  11. 护网HVV(蓝队)小白必知必会
  12. 极云普惠云电脑服务器维护,详细的极云普惠云电脑使用教程
  13. Android如何实现画板功能?
  14. 安利一下,简单云笔记
  15. Frontline软件CPAS
  16. linux用kde启动桌面,KDE Plasma 5.15桌面环境启动速度更快,Konsole完全支持Emojis
  17. Chrome浏览器批量离线下载迅雷快传资源
  18. 对开发测试工程师的理解
  19. 真正的人工智能已经存在吗
  20. 区县网站群建设改版过程

热门文章

  1. Opencv4.0学习记录(Day21 视频文件摄像头使用)
  2. unity 内部嵌入的网页插件中播放视频网页的问题
  3. FPGA——FIFO
  4. 求逆矩阵计算机方法,求逆矩阵的快速方法(用于编程).pdf
  5. 计算机网课自我鉴定,计算机实习自我鉴定
  6. uni-app+iconfont 实现星级评分(vue)
  7. leveldb:Arena内存池
  8. autojs教程:找图函数
  9. 2021icpc沈阳 J
  10. Java计算机毕业设计四六级在线考试系统源码+系统+数据库+lw文档