我从数据库获取UTC时间戳,我正在设置为JodaTime DateTime实例
DateTime dt = new DateTime(timestamp.getTime());
Run Code Online (Sandbox Code Playgroud)
它存储时间完美,10:00 AM但与当地时区.例如,我在IST时区,距离UTC +5:30
我已经尝试了很多改变时区的东西,但是10:00 AM通过使用+5:30的不同,它可以将时间从其他东西改变为其他东西
有什么办法可以在不影响当前时间的情况下更改TimeZone
编辑:如果我现在的时间是:
2013-09-25 11:27:34 AM UTC
Run Code Online (Sandbox Code Playgroud)
以下是我使用它时的结果 new DateTime(timestamp.getTime());
2013-09-25 11:27:34 AM Asia/Kolkata
Run Code Online (Sandbox Code Playgroud)
以下是我使用时的结果new DateTime(timestamp.getTime(), DateTimeZone.UTC);
2013-09-25 05:57:34 AM UTC
Run Code Online (Sandbox Code Playgroud) LocalDate#toDateMidnight读取的javdoc 如下:
从v1.5开始,建议您避免使用DateMidnight并使用toDateTimeAtStartOfDay(),因为下面有详细说明.
如果默认时区在午夜切换到夏令时,则此方法将引发异常,此LocalDate表示该切换日期.问题是在所需的日期没有午夜这样的时间,因此抛出了这样的例外.
在某些时区中不存在午夜这一事实似乎足以避免DateMidnight完全使用(假设您的代码没有使用已知不具有此DST情况的固定时区,并且永远不需要在其中使用不同的时区未来).
但是,DateMidnight不会弃用,并且DateMidnight类本身的javadoc中没有类似的建议或警告.此外,DateMidnight构造函数愉快地接受即时和时区,使得在给定的一天不存在午夜,而不是投掷IllegalArgumentException类似的LocalDate#toDateMidnight.结果DateMidnight表现为DateTime在一天开始时的时间.
当某个特定日期不存在午夜时,为什么LocalDate#toDateMidnight在DateMidnight构造函数没有的情况下抛出异常?推荐的用例是DateMidnight什么?
我是Android的新手,我目前面临的问题是获得时区的当前时间.
我以"GMT-7"格式得到时区,即字符串.我有系统时间.
有没有一种干净的方法来获得上述时区的当前时间?任何帮助表示赞赏.谢谢,
编辑:尝试这样做:
public String getTime(String timezone) {
Calendar c = Calendar.getInstance();
c.setTimeZone(TimeZone.getTimeZone(timezone));
Date date = c.getTime();
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
String strDate = df.format(date);
return c.getTime().toString();
}
Run Code Online (Sandbox Code Playgroud)