我想将String转换为Timestamp,其模式未知。是否有java给出的API允许我们输入字符串并返回可能使用它的可能模式?我知道可以有一些预定义的模式,可以解析和检查String。但是,由于这是一个时间戳,不同日期和时间的数字组合将相当多。因此,正在寻找一种有效的方法来确定String-Timestamp的模式。
答案 0 :(得分:0)
@Eugene指出,从未听说过像这样的现成库,所有模式的可能组合很大,所以可能没有这样的库。 我建议重新考虑你的架构。
如果你只想玩这样的东西,你可以创建自己的实现。
让我们说你解析输入然后你找出整数数组
(09, 21, 12, 0, 44, 33)
,你可以假设数组包含年,日,月,分,小时和秒(不确定你是否可以假设 - 它只是一个例子)
拥有该数组后,您可以创建此数组的所有可能排列 - example here
然后,您可以为每个组合创建一个Date对象:
DateTime dt = new DateTime(09, 12, 21, 0, 44, 33, 0);
(以上示例适用于JodaTime)
如果您知道例如年份值将始终以4个字符发送,那么当然可能的组合数量会减少,您可以进一步假设“26”不会是月份的值等等。您可能明白了。
答案 1 :(得分:0)
在这种情况下,首先我会切换到Joda Time:http://joda-time.sourceforge.net/
然后我会生成一些(尝试尽可能减少可能性,因为有太多的方式)模式并尝试日期。如果它没有抛出错误(也就是说它适合,将它放在一个数组中),那么返回数组。这可能是一个非常优化的解决方案,但这是我要开始的地方。
我真的不认为有这样的图书馆。此外,您可能想解释为什么要这样做。可能解决方案有点简单。
干杯, 尤金。