尝试解析时间字符串时出现解析异常02:22 p.m.
。
我具有以下转换功能:
public static long convertdatetotimestamp(String datestring, String newdateformat, String olddateformat){
SimpleDateFormat originalFormat = new SimpleDateFormat(olddateformat,Locale.ROOT);
SimpleDateFormat targetFormat = new SimpleDateFormat(newdateformat,Locale.ROOT);
Date date = null;
try {
date = originalFormat.parse(datestring);
String formattedDate = targetFormat.format(date);
Date parsedDate = targetFormat.parse(formattedDate);
long nowMilliseconds = parsedDate.getTime();
return nowMilliseconds;
} catch (ParseException e) {
e.printStackTrace();
return 0;
}
}
在具有时间格式的另一个活动中调用该方法"02:22 p.m."
。olddateformat
并且newdateformat
是相同的:hh:mm a
。
它在日志中导致以下错误:
java.text.ParseException:无法解析的日期:“ 02:22 pm”(偏移量为6)
如何解决这个问题?时间就是上述格式。
进行以下更改对我来说效果很好。
public static long convertdatetotimestamp(String datestring, String newdateformat, String olddateformat){
DateFormat originalFormat = new SimpleDateFormat(olddateformat,Locale.ENGLISH);
DateFormat targetFormat = new
SimpleDateFormat(newdateformat,Locale.ENGLISH);
Date date = null;
try {
date = originalFormat.parse(datestring.replaceAll("\\.", ""));
String formattedDate = targetFormat.format(date);
Date parsedDate = targetFormat.parse(formattedDate);
long nowMilliseconds = parsedDate.getTime();
return nowMilliseconds;
} catch (ParseException e) {
e.printStackTrace();
return 0;
}
}
Locale.ENGLISH
可以使用您的语言环境,英语解决了我的问题。参考。
感谢您的回复和参考。
问题内容: 在Go中,尝试使用时间包的Parse方法将字符串转换为时,不会返回预期结果。似乎时区有问题。我想将UTC中的日期和时间更改为ISO 8601。 提前致谢! 问题答案: 使用特殊值进行时间格式化,并期望格式与这些值一起传递。 如果您传递正确的值,它将以正确的方式解析时间。 因此,过去的年份为2006年,月份为01年,然后继续这样…
我试图用android的JodaTime库解析ISO格式的日期,但得到了错误的时区偏移量。 我的默认时区是“欧洲/莫斯科”,但结果是“1990-05-04T00:00:00.000 0400”,而它应该是“1990-05-03T23:00:00.000 0300”。Android版本是KitKat。 我做错了什么?
我只想使用以下方法将时间字符串解析为: 我希望在之后获得指定时间的,但我得到了0(即)。 注意,我使用的是Howard Hinnant的日期库。
我在将Jackson Parser依赖项添加到我的项目时遇到了麻烦。 目前我在我的build.gradle上使用这些代码行: 我唯一需要的类是我知道它在数据库包中的ObjectMapper。当我在gradle中添加这些行时,我按下了同步,一切都正常。 问题是在模拟器上运行项目,此错误出现在Android Studio中的消息中: 错误:任务': app: transformResourcesSus
我从服务器收到了很奇怪的日期格式。它看起来是2017-03-07T15:08:01.513544Z,奇怪的部分是“Z”之前的最后六个字符,因为我在服务器的最多响应中只看到了三个毫秒的符号。我试图用解析它,掩码为yyyy-mm-dd't'hh:mm:ss.ss'z',它适用于除api 16(4.1)之外的所有android版本。在developer.android.com中,我看到了类似.sssxx
我一直试图解析一个由google自动生成的XML(http://maps.googleapis.com)。 这正是我在程序中用作示例的XML: 我的最后一个问题是,我做错了什么?我得到的错误: