我正在添加这个问题,因为我是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
我有一个字符串,我需要检查它是否是标准的时区标识符.我不确定我需要使用哪种方法.
String timeZoneToCheck = "UTC";
Run Code Online (Sandbox Code Playgroud)
我想检查它是否代表有效的时区.
我需要在不同时区的两个日期之间获得时差.目前我这样做:
Calendar c1=Calendar.getInstance(TimeZone.getTimeZone("EDT"));
Calendar c2=Calendar.getInstance(TimeZone.getTimeZone("GMT"));
String diff=((c2.getTimeInMillis()-c1.getTimeInMillis())/(1000*60*60))+" hours";
new AlertDialog.Builder(this).setMessage(diff).create().show();
Run Code Online (Sandbox Code Playgroud)
我得到0几个小时.我究竟做错了什么?
作为输入,我得到一个类似 HH:mm 的字符串,它是 UTC。但我需要将时间转换为+3小时(即UTC+3)。
例如,原来是 12:30 - 现在变成了 15:30。
我尝试了这段代码,但它不起作用:(
fun String.formatDateTime(): String {
val sourceFormat = SimpleDateFormat("HH:mm", Locale.getDefault())
sourceFormat.timeZone = TimeZone.getTimeZone("UTC")
val parsed = sourceFormat.parse(this)
val tz = TimeZone.getTimeZone("UTC+3")
val destFormat = SimpleDateFormat("HH:mm", Locale.getDefault())
destFormat.timeZone = tz
return parsed?.let { destFormat.format(it) }.toString()
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
android simpledateformat timezone-offset android-calendar kotlin
android ×3
java ×2
timezone ×2
datetime ×1
kotlin ×1
threetenabp ×1
threetenbp ×1
validation ×1