我正在添加这个问题,因为我是Java和Android的新手,我搜索了几个小时试图解决这个问题.答案来自相关答案的组合,所以我想我会记录我为其他可能正在努力的人学到的东西.见答案.
对于一些背景知识,我的经验主要是PHP的Web开发和一点Ruby.我唯一的操作系统是Linux(Ubuntu Studio),我(不情愿地)在Android Studio 2.1.2中开发我的第一个Android应用程序.我的Java设置如下:
>java -version
> openjdk version "1.8.0_91"
> OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~15.10.1-b14)
> OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
Run Code Online (Sandbox Code Playgroud) datetime android android-gradle-plugin threetenbp threetenabp
如何从java sql.Timestamp
周一,周二等对象获取当天的名字?
欣赏有很多类似的帖子,但我找不到具体的帮助.
我正在尝试将此字符串转换为Java中的Date
2017-05-16 06:24:36-0700
但每次使用此代码都会失败
Date Login = new SimpleDateFormat("dd/MM/yy HH:mm:ss").parse("2017-05-16 06:24:36-0700");
Run Code Online (Sandbox Code Playgroud)
现在我假设它是由于最后的时区信息 - 我只是无法弄清楚如何设置格式.我试过这个,但没有运气
SimpleDateFormat("dd/MM/yy HH:mm:ssZ")
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我收到了格式为“yyyy-MM-dd'T'HH:mm:ssXXX”的字符串
例如“2020-06-01T11:04:02+02:00”
我想把它转换成“yyyy-MM-dd'T'HH:mm:ss:SSSZ”
例如“2020-06-01T11:04:02.000+0200”
我实际上不知道时区。它应该取自字符串的最后一部分。
我已经尝试过,但是当我将字符串转换为日期(即 IST)时,它占用了我的本地时间和时区。
SimpleDateFormat sd1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
//sd1.setTimeZone(TimeZone.getTimeZone("PST"));
Date dt = sd1.parse("2020-06-01T11:04:02+02:00");
SimpleDateFormat sd2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss:SSSZ");
System.out.println(sd2.format(dt));
Run Code Online (Sandbox Code Playgroud)
输出:
2020-06-01T14:34:02:000+0530
Run Code Online (Sandbox Code Playgroud)
只有日期是正确的,时间和时区已更改。
我知道我做错了,如果有人能告诉我我该怎么做,这将非常有帮助。谢谢您的帮助。
java ×3
date ×2
android ×1
datetime ×1
iso8601 ×1
java-8 ×1
threetenabp ×1
threetenbp ×1
timestamp ×1