如果时间格式在 7 Jan 2016 18:03:32 +0200 中给出,如何将给定时间转换为毫秒



我一直在尝试将以下时间转换为毫秒,但我无法这样做。这是我的时间格式。谁能帮我?我尝试了以下代码,我只获得了"7 Jan 2016 18:03:32">的时间(以毫秒为单位)。

例如:2016 年 1 月 7 日 18:03:32 +0200

我的代码是这样的。

if(requiredOnlyDate.find()){

String dateWithTime=requiredOnlyDate.group();
SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy hh:mm:ss");
String dateInString =dateWithTime ;
Date   date = sdf.parse(dateInString);
System.out.println(date.getTime());
}

您可以使用以下代码。在那里,它使用时间格式作为"dd MMM yyyy HH:mm:ss Z">它工作找到。我检查了"dd MMM yyyy HH:mm:ss +SSS">这种格式也适用于字符串到日期的转换。

String dateWithTime = "7 Jan 2016 18:03:32 +0200";
SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy HH:mm:ss Z");
String dateInString = dateWithTime;
Date date = sdf.parse(dateInString);
System.out.println(date.getTime());

更新

需要使用的日期格式应与要分析的日期字符串匹配。

首先,您正在解析 24 小时日期系统(18:03:02),因此请使用HH代替hh

此外,+0200表示时区,因此您必须在日期格式中包含Z

因此,您的最终日期格式将是

String dateWithTime=requiredOnlyDate.group();
SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy HH:mm:ss Z");
...//do whatever you want

如果有帮助,请告诉我。

最新更新