我正在添加这个问题,因为我是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实例中的TIMEZONE值.我在下面试过.但两种情况下的输出都是相同的:
Calendar cSchedStartCal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
System.out.println(cSchedStartCal.getTime().getTime());
cSchedStartCal.setTimeZone(TimeZone.getTimeZone("Asia/Calcutta"));
System.out.println(cSchedStartCal.getTime().getTime());
Run Code Online (Sandbox Code Playgroud)
输出:
1353402486773
1353402486773
我也尝试了这个,但输出仍然是相同的:
Calendar cSchedStartCal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
System.out.println(cSchedStartCal.getTime());
Calendar cSchedStartCal1 = Calendar.getInstance(TimeZone.getTimeZone("Asia/Calcutta"));
cSchedStartCal1.setTime(cSchedStartCal.getTime());
System.out.println(cSchedStartCal.getTime());
Run Code Online (Sandbox Code Playgroud)
在API中我看到了以下评论,但我无法理解它:
* calls: cal.setTimeZone(EST); cal.set(HOUR, 1); cal.setTimeZone(PST).
* Is cal set to 1 o'clock EST or 1 o'clock PST? Answer: PST. More
* generally, a call to setTimeZone() affects calls to set() BEFORE AND
* AFTER it up to the next call to complete().
Run Code Online (Sandbox Code Playgroud)
请你帮助我好吗?
可能的解决方案:
Calendar cSchedStartCal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
long gmtTime = cSchedStartCal.getTime().getTime();
long timezoneAlteredTime …
Run Code Online (Sandbox Code Playgroud) 我需要将UTC区域中的日期/时间存储到MySQL数据库(DATETIME类型列)中.当用户输入日期时,它首先org.joda.time.DateTime
由JSF转换器转换为.
在将此日期插入MySQL数据库之前,再次需要将其转换为java.util.Date
- 感谢EclipseLink.
以下是转换器再次转换器org.joda.time.DateTime
,java.util.Date
虽然它不是真正需要看到这个转换器.
package joda.converter;
import java.util.Date;
import org.eclipse.persistence.mappings.DatabaseMapping;
import org.eclipse.persistence.mappings.converters.Converter;
import org.eclipse.persistence.sessions.Session;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
public final class JodaDateTimeConverter implements Converter
{
private static final long serialVersionUID = 1L;
@Override
public Object convertObjectValueToDataValue(Object objectValue, Session session)
{
return objectValue instanceof DateTime?((DateTime) objectValue).withZone(DateTimeZone.UTC).toDate():null;
}
@Override
public Object convertDataValueToObjectValue(Object dataValue, Session session)
{
return dataValue instanceof Date?new DateTime((Date) dataValue):null;
}
@Override
public boolean isMutable()
{
return true;
}
@Override
public void …
Run Code Online (Sandbox Code Playgroud) 我有(yyyyMMddHHmmss)格式的日期和时间"20140508063630".我想将此时间转换为EST时区.我该怎么做?如果此转换有任何API,请告诉我们.提前致谢.
如何在Java中获取当前服务器的时间?我试过,System.currentTimeMills()
但它返回给我客户的时间而不是服务器时间.我希望以毫秒为单位获得"服务器"时间.
请不要关闭这个问题.我在网上搜索,但我不明白.所有代码都返回值1970
.我想要的是例如:当前服务器时间9/25/2012:10:19AM
以毫秒为单位.
我也搜索了其他问题,这与其他问题没有重复.
我正在使用MongoDB来存储我的数据.Mongo以UTC格式存储时间戳作为默认值.我们处理不同时区的数据.我很难将UTC时间戳转换为PDT或IST时间戳.
尝试构建一个方法来传递时区(我的时间戳将转换为其中)和时间戳(UTC).返回指定时区的时间戳的方法.
public Date getDateBasedOnZone(Date date, "America/Los_Angeles") {
return dateInAmerica/Los_Angeles;
}
Run Code Online (Sandbox Code Playgroud)