首页 / 知识
关于 java:您将如何以编程方式从存储在字符串中的日期创建模式?
2023-04-14 05:01:00

How Would You Programmatically Create a Pattern from a Date that is Stored in a String?我有一个包含日期表示的字符串。它看起来像: 2006 年 11 月 30 日星期四 19:00:00 EST 我正在尝试使用 SimpleDateFormat 创建一个 Date 对象,但遇到了 2 个问题。 1.) 我无法找出将解决方案硬编码到 SimpleDateFormat 构造函数中的模式 2.) 我找不到一种方法可以使用 API 解析字符串以确定模式,因此我可以将其重用于不同的日期输出模式 如果有人知道使用 API 的解决方案或自定义解决方案,我将不胜感激。 可以在 http://java.sun.com/javase/6/docs/api/java/text/SimpleDateFormat.html 中查找要传递给 SimpleDateFormat 的格式
至于你的第二个问题,我不知道有任何 Java 库可以在事先不知道格式是什么的情况下找出日期格式并对其进行解析。 POJava 日期解析器 org.pojava.datetime.DateTime 是一个不可变且强大的解析器,支持多种语言、时区和格式。 最重要的是,解析器是启发式的,不需要预先存在的a€?formata€?去工作。您只需将日期/日期时间文本字符串传递给它,然后得到一个 java.util.Date! 请参阅 Apache Commons\\' DateUtils。有一个 值得知道您给出的日期格式不是任意的。它是内置 Date.toString() 方法的输出(至少在英国和美国地区)。并非巧合,它也是 unix \\'date\\' 命令的格式(至少在 linux 上,我也相信其他实现) - 虽然是迂腐的,但 Date.toString() 用一个数字填充一个数字零,而 unix 日期没有。 这意味着当您将未格式化的日期输出到用户可修改的字段(例如 HTML INPUT 字段)并在未修改的情况下接收回来时,您可能会收到这种输入格式。所以仅仅因为输入以这种格式出现,并不意味着用户会输入一千种其他任意格式。 当然,他们仍然可能。我处理日期输入的一般方式是使用一堆 try/catch 块,我在其中尝试一种格式,然后是另一种格式,然后是另一种格式。默认情况下,我们的标准框架现在最多有 20 种不同的格式。当然,它仍然不完美;前几天我发现有人输入"03 Sept"作为日期(非标准月份缩写,没有年份),但我们没有处理这种情况。 如果你想做除了解析或格式化日期之外的任何事情,那么处理模式本身的方法并不多。前一段时间,我正在编写一个 Swing 组件,用于将日期输入到格式化的文本字段中。您提供了一个模式,它通过该模式的元素移动文本输入光标,只允许有效值。 作为其中的一部分,我编写了一个 DateFormatParser,可在此处获得,作为 OpenHarmonise 开源项目的一部分。 将日期解析为模式将是一个非常有趣的问题。您必须做出某些假设(例如使用 : in time 而不是 date),但您将面临 2 位数年和日/月或月/日安排的永恒问题。 我不确定是否有任何简单的方法可以解析日期并计算出它的模式,但我原以为您发布的模式是: EEE MMM dd HH:mm:ss zzz yyyy 我必须说我觉得另一个问题很有趣。但是有一个严重的问题 - 解析这个:08/07/06!如果您将自己限制在预期格式的子集上,您可能可以通过使用正则表达式来解决问题,您可以构建一堆预期的模式,然后在空格或其他任何地方打破字符串,并逐部分匹配。 正如其他人所说,模式看起来应该是
至于解析任意格式的日期,我不知道有任何库在 Java 中执行此操作。如果你热衷于开发这样的东西,我会从 perl str2time 函数开始。 这并不完全一样,但您可能想看看 JChronic 之类的东西,它可以对日期进行自然语言处理。因此,输入日期可能类似于"明天"或"从下周二开始的两周"。 这可能对您的应用程序毫无帮助,但话又说回来,它可能会。 怎么样: 只需将字符串传递给 SimpleDateFormat 的构造函数即可。要使用该对象,只需调用传入要转换为 Date 的字符串的 parse 方法。 你可以看看: http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html 您只是在询问给定日期的模式吗?如果是这样,我认为应该这样做:
或者您是否尝试获取任何格式化的日期,并推断格式并解析它? |
最新内容
相关内容
linux命令模式全屏?
linux命令模式全屏?,系统,工具,电脑,数据,位置,命令,虚拟机,分辨率,字符串,窗口,linux命令行模式满屏如何翻页或dmesg |less more命令的翻页按linux中回到命令模式?
linux中回到命令模式?,系统,密码,情况,状态,终端,环境,信息,首页,界面,命令,“linux”怎么返回输入命令的状态?1、如果在命令行下使用gedit, 关linux怎么用命令模式?
linux怎么用命令模式?,工作,地址,系统,信息,管理,命令,目录,情况,图形界面,终端,linux系统常用操作命令1、linux常用命令有pwd命令、cd命令、llinux切换日期命令?
linux切换日期命令?,时间,系统,信息,命令,城市,终端,时分,日期,窗口,操作系统,linux修改系统时间命令首先输入date的时候,系统输出的是linux的linux终端命令行编程?
linux终端命令行编程?,系统,工作,命令,终端,概念,时间,第一,代码,发行,地方,Linux下5个有趣的命令行技巧介绍我们可以使用history命令来查看曾linux插入命令模式?
linux插入命令模式?,工作,系统,地址,管理,信息,时间,命令,目录,平均,项目,Linux命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出目录的命令行模式登陆linux?
命令行模式登陆linux?,密码,系统,工作,信息,终端,环境,状态,地址,工具,服务,linux,按了ctrl+alt+F1,进入了类似纯命令行的界面,让输入login信linux打开命令模式?
linux打开命令模式?,系统,密码,管理,情况,终端,命令,工具,信息,地方,电脑,LINUX下怎么进入命令行模式,打开linux系统,在linux的桌面的空白处右linux编程调用命令?
linux编程调用命令?,系统,标准,管理,工作,基础知识,情况,环境,设备,基础,首页,linux下怎样用c语言调用shell命令可以通过system函数,调用shelllinux命令查找字符串?
linux命令查找字符串?,工具,信息,命令,字符串,系统,工作,文件,范本,样式,文本,Linux中使用grep命令,查询多个字符串Linux grep命令用于查找文linux编程所需的命令?
linux编程所需的命令?,工作,地址,档案,系统,命令,管理,标准,信息,目录,文件,Linux必须学会的60个命令:文件处理1应用实例如果我们看到一个没有linux纯命令模式切换?
linux纯命令模式切换?,系统,密码,状态,电脑,网络,信息,模式,命令,情况,地方,Linux切换命令模式与GUI模式手工切换:在图形界面中找一个可以输入