我正在添加这个问题,因为我是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
我想将此GMT时间戳转换为GMT + 13:
2011-10-06 03:35:05
Run Code Online (Sandbox Code Playgroud)
我尝试过大约100种不同的DateFormat,TimeZone,Date,GregorianCalendar等组合来尝试做这个非常基本的任务.
这段代码完成了我对CURRENT TIME的要求:
Calendar calendar = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
DateFormat formatter = new SimpleDateFormat("dd MMM yyyy HH:mm:ss z");
formatter.setTimeZone(TimeZone.getTimeZone("GMT+13"));
String newZealandTime = formatter.format(calendar.getTime());
Run Code Online (Sandbox Code Playgroud)
但我想要的是设定时间而不是使用当前时间.
我发现任何时候我都尝试设置这样的时间:
calendar.setTime(new Date(1317816735000L));
Run Code Online (Sandbox Code Playgroud)
使用本地机器的TimeZone.这是为什么?我知道当"new Date()"返回UTC + 0时,为什么当你设置Time以毫秒为单位时,它不再假设时间是UTC?
有可能:
在此先感谢您的帮助:D
我需要在我的项目中从一个时区转换到另一个时区.
我可以从我当前的时区转换到另一个时区,但不能从不同的时区转换到另一个时区.
例如,我在印度,我能够使用Date d=new Date();
并将其分配给日历对象并设置时区,从印度转换为美国.
但是,我不能从不同的时区到另一个时区这样做.例如,我在印度,但我无法将时区从美国转换到英国.
我允许用户在我的网络应用程序上根据他们选择的时区安排活动.
我想向最终用户提供一个很好的时区列表,然后将其轻松转换java.util.TimeZone
为服务器端的对象.
String[] TimeZone.getAvailableIds()
是我可以使用的东西,但问题是它打印了大约585个时区ID.
向用户提供一个简短的时区列表(如Windows框用于时区设置)并使用其ID轻松转换为服务器端的TimeZone对象的最佳方法是什么?
我已编写此代码以将当前系统日期和时间转换为其他时区.我没有收到任何错误,但我没有按预期得到我的输出.就像我在特定时间执行我的程序..我的输出是::
印度当前时间是::Fri Feb 24 16:09:23 IST 2012
:: Central Standard Time中的日期和时间::Sat Feb 25 03:39:23 IST 2012
根据CST时区的实际时间是::
Friday, 24 February 4:39:16 a.m(GMT - 6:00)
Run Code Online (Sandbox Code Playgroud)
所以有一些时间差距.我不知道为什么会这样.任何帮助将不胜感激..代码是::
package MyPackage;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
public class Temp2 {
public static void main(String[] args) {
try {
Calendar currentdate = Calendar.getInstance();
String strdate = null;
DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
strdate = formatter.format(currentdate.getTime());
TimeZone obj = TimeZone.getTimeZone("CST"); …
Run Code Online (Sandbox Code Playgroud) java ×4
timezone ×4
datetime ×3
android ×1
date ×1
formatting ×1
threetenabp ×1
threetenbp ×1
timestamp ×1