Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-SimpleDataFormat字符串到日期转换_Java_Date - Fatal编程技术网

Java-SimpleDataFormat字符串到日期转换

Java-SimpleDataFormat字符串到日期转换,java,date,Java,Date,我有理由在JAVA标准API中闲逛,我讨厌其中的日期。 所以我的问题是时间单位转换。现在作为输入,我得到一个字符串:“19.1”,“33.79”,“10.321”或“10.23.66” 因此,我们可以期待“mm.ss.ss”、“ss.ss”、“ss.SSS”模式,并使用SimpleDataFormat的魔力: SimpleDateFormat dateFormat = new SimpleDateFormat("ss.SS"); dateFormat.setTimeZone(getTimeZon

我有理由在JAVA标准API中闲逛,我讨厌其中的日期。 所以我的问题是时间单位转换。现在作为输入,我得到一个字符串:“19.1”,“33.79”,“10.321”或“10.23.66”

因此,我们可以期待“mm.ss.ss”、“ss.ss”、“ss.SSS”模式,并使用SimpleDataFormat的魔力:

SimpleDateFormat dateFormat = new SimpleDateFormat("ss.SS");
dateFormat.setTimeZone(getTimeZone("GMT"));
dateFormat.parse("19.1").getTime();
但结果有些奇怪。我希望得到19100个磨坊,尽管我得到19001个磨坊。这是正确的转换吗


此外,这并不能确保“191111”将是19011L,或者它将不匹配“ss.ss”模式,我将得到一个异常。使用所有SimpleDataFormat,这将在mills中成功解析为20111L。我真的很困惑。。。它应该是这样工作的吗?

它应该是这样工作的,我担心您必须自己解析这个格式。但这不应该那么难

long millis = 0;
String[] numbers = dateString.split(".");
millis += Integer.parseInt(numbers[numbers.length-1]) * 
          (int)Math.pow(10,numbers[numbers.length-1].length()-3));
for (int i=2; i<=numbers.length; i++) {
  millis += Integer.parseInt(numbers[numbers.length-i]) *
            (int)Math.pow(60,i-1) * 100;
}
long millis=0;
String[]number=dateString.split(“.”);
毫秒+=整数.parseInt(数字[numbers.length-1])*
(int)Math.pow(10,numbers[numbers.length-1].length()-3));

对于(inti=2;我想如果你想要
19100
millis,你需要提供
19.100
。基本上你要求的是
19.001
…看看你的号码,你输入的是
19.1
,然后你解析的是
ss.ss
。所以
ss=19
ss=1!=100
,也就是说,后面是零和le零不是一回事。这毕竟是十进制算术。。。