我正在添加这个问题,因为我是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日期和日历从一个时区到另一个时区进行简单的转换.我试图运行以下代码
Calendar instance = Calendar.getInstance(TimeZone.getTimeZone("Europe/London"));
Date date = instance.getTime();
System.out.println(date);
GregorianCalendar instance2 = new GregorianCalendar(TimeZone.getTimeZone("Europe/Athens"));
instance2.setTime(instance.getTime());
System.out.println(instance2.getTime());
Run Code Online (Sandbox Code Playgroud)
但仍然返回相同的日期,而不是+1小时...整个问题似乎微不足道,但我找不到任何简单的答案.在此先感谢您的帮助.
我已编写此代码以将当前系统日期和时间转换为其他时区.我没有收到任何错误,但我没有按预期得到我的输出.就像我在特定时间执行我的程序..我的输出是::
印度当前时间是::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) 我一直在寻找将格林威治标准时间转换为当地时间的最简单方法.当然,要考虑适当的DST日期并尽可能标准.
我能想出的最直接的代码是:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String inpt = "2011-23-03 16:40:44";
Date inptdate = null;
try {
inptdate = sdf.parse(inpt);
} catch (ParseException e) {e.printStackTrace();}
Calendar tgmt = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
tgmt.setTime(inptdate);
Calendar tmad = new GregorianCalendar(TimeZone.getTimeZone("Europe/Madrid"));
tmad.setTime(inptdate);
System.out.println("GMT:\t\t" + sdf.format(tgmt.getTime()));
System.out.println("Europe/Madrid:\t" + sdf.format(tmad.getTime()));
Run Code Online (Sandbox Code Playgroud)
但我认为我没有得到正确的概念来getTime回归.
我有(yyyyMMddHHmmss)格式的日期和时间"20140508063630".我想将此时间转换为EST时区.我该怎么做?如果此转换有任何API,请告诉我们.提前致谢.
我想为FIFA 2014世界杯比赛创建一个警报应用程序,其中我有一个服务器,存储在巴西/英亩的比赛的日期和时间,我的客户端是一个Android应用程序和Android设备可能有任何可能的时区所以我的问题是我想将巴西/ Acre时间转换为本地Android设备时间与不同的时区和大量的谷歌搜索后我了解了joda数据和时间lib但它在Android中太慢所以请建议任何代码这对我有用.
如何获取 mySQL 时间戳格式mySQLtimestamp?
long epochNow = System.currentTimeMillis()/1000;
long epochWeek = 604800;
long date7daysAgo = epochNo2013 w - epochWeek;
String mySQLtimestamp = /* 2013-09-23:50:00 */
Run Code Online (Sandbox Code Playgroud) 我正在尝试将 转换IST为UTC纪元Java
但不是从 中减去 5.30 小时IST,而是在 中添加 5.30IST
public static long convertDateToEpochFormat(String date) {
Date convertedDate = null;
try {
LOGGER.info(date);
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
LOGGER.info(date);
convertedDate = formatter.parse(date);
LOGGER.info(convertedDate);
} catch (ParseException e) {
e.printStackTrace();
}
return convertedDate.getTime() / 1000L;
}
Run Code Online (Sandbox Code Playgroud)
我获得的日志语句是:
2017-01-01 00:00:00
2017-01-01 00:00:00
Sun Jan 01 05:30:00 IST 2017
Run Code Online (Sandbox Code Playgroud)
由于 UTC 转换,理想情况下应为 12 月 31 日 18:30:00。
谁能告诉我怎么了?