在本文中,我们将给您介绍关于无法在Android上将字符串转换为日期的详细内容,并且为您解答无法在android上将字符串转换为日期格式的相关问题,此外,我们还将为您提供关于android–如何将字符
在本文中,我们将给您介绍关于无法在Android上将字符串转换为日期的详细内容,并且为您解答无法在android上将字符串转换为日期格式的相关问题,此外,我们还将为您提供关于android – 如何将字符串转换为类名、android – 将字符串转换为Drawable、Android-如何在Android中将字符串转换为utf-8、Android:如何将字符串转换为日期?的知识。
本文目录一览:- 无法在Android上将字符串转换为日期(无法在android上将字符串转换为日期格式)
- android – 如何将字符串转换为类名
- android – 将字符串转换为Drawable
- Android-如何在Android中将字符串转换为utf-8
- Android:如何将字符串转换为日期?
无法在Android上将字符串转换为日期(无法在android上将字符串转换为日期格式)
我已从API以2017-04-23T19:47:39 + 00:00的形式获取字符串,如何将其转换为格式为“
2017-04-23T19:47:39-0000”的日期?
我尝试了以下操作,但它给出了ParseException
String created_at_string = "2017-04-23T19:47:39+00:00";SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd''T''HH:mm:ssZ");Date created_at = sdf.parse(created_at_string);
例外:
06-22 18:18:32.517 10396-10396/com.harit.abs W/System.err: java.text.ParseException: Unparseable date: ""2018-04-29T10:55:37+00:00"" at java.text.DateFormat.parse(DateFormat.java:358) at com.harit.abs.Sync_Activity.bu(Sync_Activity.java:169) at com.harit.abs.Sync_Activity$2.onCompleted(Sync_Activity.java:118) at com.harit.abs.Sync_Activity$2.onCompleted(Sync_Activity.java:87) at com.koushikdutta.async.future.SimpleFuture.handleCallbackUnlocked(SimpleFuture.java:107) at com.koushikdutta.async.future.SimpleFuture.setComplete(SimpleFuture.java:141) at com.koushikdutta.async.future.SimpleFuture.setComplete(SimpleFuture.java:128) at com.koushikdutta.ion.IonRequestBuilder$1.run(IonRequestBuilder.java:246) at com.koushikdutta.async.AsyncServer$RunnableWrapper.run(AsyncServer.java:60) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154)
尝试使用TimeZone在SimpleDateFormat中给出的内容 仍然获得相同的解析异常
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd''T''HH:mm:ssZ", Locale.getDefault());String created_at_string = "2017-04-23T19:47:39+00:00";Date created_at = sdf.parse(created_at_string);
答案1
小编典典你不需要
您要求的转换很容易是多余的。您要输入类似的字符串2017-04-23T19:47:39-0000
。此字符串为ISO
8601格式(国际标准格式)。因此,根据您的实际情况,我希望ISO
8601中的字符串适合您。您已经获得的字符串2017-04-23T19:47:39+00:00
也在ISO
8601中!该标准允许一些变化,其中之一是偏移量中的冒号是可选的。因此,我认为您应该做的第一件事是传递所获得的字符串,看看是否可行。如果没有,请继续阅读。
java.time
使用现代的Java日期和时间API,您所需的转换 非常 顺利java.time
:
DateTimeFormatter formatterWithoutColon = DateTimeFormatter.ofPattern("uuuu-MM-dd''T''HH:mm:ssxx"); String createdAtString = "2017-04-23T19:47:39+00:00"; OffsetDateTime dateTime = OffsetDateTime.parse(createdAtString); String inDesiredFormat = dateTime.format(formatterWithoutColon); System.out.println(inDesiredFormat);
这将打印所需的内容:
2017-04-23T19:47:39 + 0000
请注意,我们甚至不需要格式化程序来解析字符串。OffsetDateTime
以及将java.time
ISO
8601解析为默认值的许多其他类。由于我们对结果的要求更加精确,因此我们在这里使用格式化程序。xx
例如,为我们提供了不带冒号的偏移量+0000
。
Date
您使用的类已经过时了。也是SimpleDateFormat
,而且也很麻烦。我建议您避免使用这些课程。
问题:我可以在Android上使用java.time吗?
是的,java.time
在较新和较旧的Android设备上均可正常运行。它至少需要Java 6 。
- 在Java 8和更高版本以及更新的Android设备中(有人告诉我,从API级别26开始),内置了现代API。
- 在Java 6和7中,获取ThreeTen反向端口,即新类的反向端口(JSR 310的ThreeTen;请参见底部的链接)。
- 在旧版Android上,请使用Android版本的ThreeTen Backport。它称为ThreeTenABP。并确保您导入
org.threeten.bp
带有子包的日期和时间类。
骇客
您所需的更改非常简单,只需要删除一个冒号即可。因此,另一个不需要ThreeTenABP的但不是基本但简单的解决方案是正则表达式:
String inDesiredFormat = createdAtString.replaceFirst("([+-]\\d{2}):(\\d{2})$", "$1$2");
得出与上述相同的结果。
android – 如何将字符串转换为类名
我正在尝试将字符串转换为类名.
我的代码是:
app.actNum = "third.class";
in.close();
//on test
// Intent intent = new Intent(this.context,Class.forName(app.actNum));
Intent dialogIntent = new Intent(getBaseContext(), Class.forName(app.actNum));
但得到
get ClassNotFoundException on Class.forName android
解决方法:
调用Class.forName()时,应使用不带扩展名的类名.因此,如果您的类名为Test并且在mypackage.tests包中,那么您应该使用:
Class.forName("mypackage.tests.Test")
android – 将字符串转换为Drawable
所以我的问题是:有没有办法将我的字符串转换为一个Drawable在状态栏中显示为图标?
编辑:我最近发现了一个类似的电池指示器的应用程序
它将状态栏中的当前电池电量显示为通知图标 – 我想知道它是否真的使用不同的100张图像
解决方法
长:通知需要一个R.drawable.something的图标,你不能在运行时创建它.
Android-如何在Android中将字符串转换为utf-8
我无法在Android中将字符串转换为UTF-8。请帮我!!
s1=URLEncoder.encode("臺北市")
结果: %EF%BF%BDO%EF%BF%BD_%EF%BF%BD%EF%BF%BD
但是“ 臺北市
”应该编码为“ %E8%87%BA%E5%8C%97%E5%B8%82
”
答案1
小编典典在http://developer.android.com/reference/java/net/URLEncoder.html中,您可以了解到您使用的已弃用,应该使用staticString encode(String s, String charsetName)
所以URLEncoder.encode("臺北市", "utf-8")
应该做到这一点。
Android:如何将字符串转换为日期?
每次应用程序由用户启动时,我都会将当前时间存储在数据库中。
Calendar c = Calendar.getInstance(); String str = c.getTime().toString(); Log.i("Current time", str);
在数据库方面,我将当前时间存储为字符串(如您在上面的代码中所见)。因此,当我从数据库加载它时,我需要将它转换为 Date
对象。我看到了一些样本,他们都使用了“DateFormat”。但我的格式与日期格式完全相同。所以,我认为没有必要使用“DateFormat”。我对吗?
反正有没有直接将此字符串转换为日期对象?我想将此存储的时间与当前时间进行比较。
更新
谢谢大家。我使用了以下代码:
private boolean isPackageExpired(String date){ boolean isExpired=false; Date expiredDate = stringToDate(date, "EEE MMM d HH:mm:ss zz yyyy"); if (new Date().after(expiredDate)) isExpired=true; return isExpired; } private Date stringToDate(String aDate,String aFormat) { if(aDate==null) return null; ParsePosition pos = new ParsePosition(0); SimpleDateFormat simpledateformat = new SimpleDateFormat(aFormat); Date stringDate = simpledateformat.parse(aDate, pos); return stringDate; }
答案1
小编典典从字符串到日期
String dtStart = "2010-10-15T09:27:37Z"; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd''T''HH:mm:ss''Z''"); try { Date date = format.parse(dtStart); System.out.println(date); } catch (ParseException e) { e.printStackTrace(); }
从日期到字符串
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd''T''HH:mm:ss''Z''"); try { Date date = new Date(); String dateTime = dateFormat.format(date); System.out.println("Current Date Time : " + dateTime); } catch (ParseException e) { e.printStackTrace(); }
关于无法在Android上将字符串转换为日期和无法在android上将字符串转换为日期格式的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于android – 如何将字符串转换为类名、android – 将字符串转换为Drawable、Android-如何在Android中将字符串转换为utf-8、Android:如何将字符串转换为日期?等相关知识的信息别忘了在本站进行查找喔。
本文标签: