我必须在MySQL数据库中写日期时间: 我需要这么简单:
this.repes.get(parcelaIdx).setFechaCosecha(new Date());
但是因为日期提前了三个小时!!所以它是GMT -00
,我在GMT -03
(阿根廷)。
如何获取当前和本地机器的日期和时间?
编辑澄清一下,只需要一点代码:
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class AllTimeZones{
public static void main(String args[]){
String[] AllID= TimeZone.getAvailableIDs();
Date myDate = new Date();
for(int i=0;i<AllID.length;i++)
{
System.out.println("TimeZone ["+(i+1)+"] ==>"+TimeZone.getTimeZone(AllID[i]));
System.out.println("myDate sin TimeZone:" + myDate);
DateFormat dfm = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
dfm.setTimeZone(TimeZone.getTimeZone(AllID[i]));
System.out.println("myDate con TimeZone:" + dfm.format(myDate) );
}
}
}
答案 0 :(得分:2)
日期对象不支持时区,它们只是“特定的即时时间”。
每当您需要日期和时区信息时,请使用Calendar代替。
P.S:我建议每当你给数据库写时间时,总是用GMT / UTC格式写。因此,使用新的Date()将以该格式(GMT + 0)提供。稍后当您从表单中检索它并向客户端显示时,它会进行适当的转换。
答案 1 :(得分:1)
我们再来一次。日期没有时区。这是一个瞬间。只有当它以人类可读的格式显示时,才会使用时区。更改日期显示方式。它的构造正确。