如何将以字符串表示的日期转换为毫秒?
问题的出现原因:用户想要将表示日期的字符串转换为毫秒表示的日期。
解决方法:使用SimpleDateFormat类,该类接受一个字符串作为参数,并将其转换为Date对象,然后调用getTime()方法以获取以毫秒表示的日期。
具体代码如下:
SimpleDateFormat sdf = new SimpleDateFormat("MM.dd.yyyy"); Date date = sdf.parse("01.01.2022"); long milliseconds = date.getTime();
其中,"MM.dd.yyyy"表示日期字符串的格式为"月份.日期.年份",sdf.parse()方法将字符串转换为Date对象,然后调用getTime()方法获取以毫秒表示的日期。
注意,如果原始日期字符串的格式与"MM.dd.yyyy"不匹配,需要根据实际情况进行调整。
在上述代码中,问题的原因是无法将表示日期的字符串转换为毫秒值。代码中使用了SimpleDateFormat类来解析日期字符串,并将其转换为Date对象。然后,通过调用Date对象的getTime()方法,可以获取日期的毫秒值。
然而,问题出现在SimpleDateFormat的模式字符串上。在代码中,模式字符串为"MM.dd.yyyy",表示日期的格式为月份.天.年份。但是,实际上日期字符串的格式是天.月.年份,即"05.10.2011"。因此,SimpleDateFormat无法正确解析日期字符串,导致转换失败。
为了解决这个问题,我们需要将模式字符串修改为"dd.MM.yyyy",以正确匹配日期字符串的格式。修改后的代码如下:
String someDate = "05.10.2011"; SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy"); Date date = sdf.parse(someDate); System.out.println(date.getTime());
通过修改模式字符串,代码现在可以正确地将日期字符串转换为毫秒值。现在,调用date.getTime()方法将输出正确的结果。