我想将作为字符串传递给SimpleDateFormat对象的时间戳值转换为时间值,但它引发了一个不可解析的日期异常。
The Value which i am passing is Thu Jan 1 17:45:00 UTC+0530 1970
但是我得到了一个如下所述的例外情况:
java.text.ParseException: Unparseable date: "Thu Jan 1 17:45:00 UTC+0530 1970"
请找到下面的代码,我已经实现(不工作):
static SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.US);
static SimpleDateFormat inputFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.US);
static SimpleDateFormat outputFormatTime = new SimpleDateFormat("HH:mm:ss");
public static String convertUtcDateStringToTime(String utcDateValue) throws Exception
{
Date parsedDate = dateFormat.parse(utcDateValue);
String returnDate=outputFormatTime.format(inputFormat.parse(parsedDate.toString()));
return returnDate;
}
@SuppressWarnings("deprecation")
public static String convertUtcDateStringToTime(String utcDateValue) throws Exception
{
Date dateValue=new Date(utcDateValue);
Date parsedDate = dateFormat.parse(dateValue.toString());
String returnDate=outputFormatTime.format(inputFormat.parse(parsedDate.toString()));
return returnDate;
}
请指导我在我错过的地方实现逻辑。提前道谢。
首先,根本不需要第二个simpledateformat
对象。你在做额外的工作,这是不需要的。因此,请删除此变量:
static SimpleDateFormat inputFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.US); // Not needed.
其次,dateformat#format(Date)
方法采用Date
对象。您将向它传递一个字符串
。那是行不通的。这就是为什么你不需要上面的对象。不需要再次执行InputFormat.Parse(ParsedDate.ToString())
。
现在,解析当前字符串的格式应该是:
"EEE MMM dd HH:mm:ss 'UTC'z yyyy"
您需要在z
之前用引号给出utc
。或更一般的情况:
"EEE MMM dd HH:mm:ss zZ yyyy"
因此,您的代码应该如下所示:
static SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zZ yyyy", Locale.US);
static SimpleDateFormat outputFormatTime = new SimpleDateFormat("HH:mm:ss");
public static String convertUtcDateStringToTime(String utcDateValue) throws Exception
{
Date parsedDate = dateFormat.parse(utcDateValue);
String returnDate=outputFormatTime.format(inputFormat);
return returnDate;
}
我很抱歉,如果这是一个非常愚蠢的错误,但我似乎看不到它。当我尝试使用SimpleDateFormat以“yyyy-mm-dd't'hh:mm:ss.sssz”作为格式字符串来解析2012-08-28t21:52:57.020z时,出现了一个不可解析的日期异常。谁能给我指出问题所在。
我试图找出如何在Kotlin中将转换为,这在Java中非常简单,但我在Kotlin中找不到任何等效的。 例如:历元时间戳(1970-01-01以来的秒数)== 在Kotlin中是否有解决方案,或者我是否必须在Kotln中使用Java语法?请给我一个简单的例子来说明如何解决这个问题。提前谢谢。 这个链接不是我问题的答案
问题内容: 论坛成员 我在Java中遇到日期时间问题。实际上,我正在接收 格式为2012-02-27T01:10:10 的开始日期,并且我想将接收到的日期插入具有datetime数据类型的数据库中。 实际上,我尝试通过以下代码将收到的开始日期转换为日期时间 但是使用上面的代码,只有 日期被添加到我的数据库中,例如2012-02-27 00:00:00 我也想将时间添加到数据库中,但是当我将Simp
问题内容: 我在来自Linux服务器的json中有一个时间戳。我想使用Java将其转换为简单的日期时间格式。 我需要以下格式的日期和时间:dd-mm-yyyy hh:mm:ss 这是我的JSON数据: 问题答案: 批处理日期 看起来像是从时代开始的几秒钟, 所以 然后使用SimpleDateFormat应该可以解决问题 -代码- -输出-
问题内容: 如何在Java中将分钟从Unix时间戳转换为日期和时间。例如,时间戳1372339860对应于。 我想转换成。 编辑:其实我希望它是根据美国时间GMT-4,所以它将是。 问题答案: 你可以使用SimlpeDateFormat来格式化日期,如下所示: 如果使用的模式SimpleDateFormat非常灵活,则可以根据给定的特定模式,在javadocs中检入可用于产生不同格式的所有变体Da
问题内容: 我尝试将其转换为java.sql.Timestamp后插入,并使用以下代码段: 但是,这是给我的 有没有办法在没有毫秒的情况下获得输出? 问题答案: 您可以使用来减少毫秒数: 输出: