Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java';s getDate返回错误的日期_Java_Android_Date_Parsing_Getdate - Fatal编程技术网

Java';s getDate返回错误的日期

Java';s getDate返回错误的日期,java,android,date,parsing,getdate,Java,Android,Date,Parsing,Getdate,我正在从我的解析数据库中检索一些日期。问题是从数据库中检索到的一个日期返回了错误的日期。在这种情况下,当我检索2016年10月1日的日期时,它将返回2016年10月2日!但是,其他日期返回正确的日期(在本例中是日志中的另外两个日期(2016年2月7日和2016年2月21日) 出于奇怪的原因,为什么只在这一天返回错误的日期,而每隔一天返回正确的日期 (列表是数据库中ParseObject的列表,包含日期) 在这里,我在数据库中得到了我的日期图像,您可以看到,只有最后一个(10月1日)返回了错误的值

我正在从我的解析数据库中检索一些日期。问题是从数据库中检索到的一个日期返回了错误的日期。在这种情况下,当我检索2016年10月1日的日期时,它将返回2016年10月2日!但是,其他日期返回正确的日期(在本例中是日志中的另外两个日期(2016年2月7日和2016年2月21日)

出于奇怪的原因,为什么只在这一天返回错误的日期,而每隔一天返回正确的日期

(列表是数据库中ParseObject的列表,包含日期)

在这里,我在数据库中得到了我的日期图像,您可以看到,只有最后一个(10月1日)返回了错误的值

顺便说一句,不要担心图像中显示的其他日期,它们是在列表中排序的

数据库上的日期


它可能与时区有关。请检查数据库服务器和检索记录的服务器的时区,它们可能不同


一个好的做法是始终使用datetimeoffset以避免任何混淆。

它可能与时区有关。检查数据库服务器和检索记录的服务器的时区,它们可能不同


一个好的做法是始终使用datetimeoffset以避免任何混淆。

检查时区。DB中的日期2016年1月10日接近午夜

也许您正在GMT中检索这些日期并应用JVM时区


如果您也在控制台上打印时间,这会有所帮助。

检查时区。数据库中的日期2016年1月10日接近午夜

也许您正在GMT中检索这些日期并应用JVM时区


如果您也在控制台上打印时间,这会有所帮助。

您不会显示如何获取(或操纵)时间列表。您的db映像中有一些日期不在日志中,您不想知道吗?很抱歉,我没有提到这些。列表是有序的,因此列表大小为3,包含记录的3个日期。我将编辑我的帖子以使其更清晰。您是否尝试过改用
日历
类?这些方法都是无效的如果你认为它们应该工作,那么你是否试着把一个日期插入本地数据存储库中,然后立即检索它?我非常怀疑问题是java GETDATE函数。@ Stina AssiIM提示:考虑使用java 8和更高版本中构建的框架。列表。您的db映像中有一些日期不在日志中,您不想知道吗?很抱歉,我没有提到这些。列表是有序的,因此列表大小为3,包含记录的3个日期。我将编辑我的帖子以使其更清晰。您是否尝试过改用
日历
类?这些方法都是无效的如果你认为它们应该工作,那么你是否试着把一个日期插入本地数据存储库中,然后立即检索它?我非常怀疑java java GATEDE函数的问题。@ Stina。嗯,谢谢你的反馈,我现在已经修好了,我的设备检索距离数据库还有几个小时……太好了,被鬼捕捉到了!我很感谢你在答案中的投票;-)@SteinarSeim为了防止这种疏忽,训练你自己作为一名程序员,从“日期时间”、“仅日期”和“仅时间”的角度思考。日期-时间工作是一件棘手的事情,尤其是当Java、JDBC、SQL和数据库交叉使用时。更加自觉地意识到所涉及的数据类型会有所帮助。哦,当然我应该立即考虑这一点!好的,谢谢你的反馈,我现在已经修复了,我的设备检索距离数据库还有几个小时…完美,鬼捕捉到了!我希望你在回答中投我一票;-)@SteinarSeim为了防止这种疏忽,将自己训练成一名程序员,从“日期-时间”、“仅日期”和“仅时间”的角度思考问题。日期-时间工作是一件棘手的事情,尤其是当Java、JDBC、SQL和数据库交叉使用时。更加自觉地了解所涉及的数据类型将有所帮助。
Date[] surveyDate = new Date[list.size()];
for(int i = 0; i<list.size(); i++){
    surveyDate[i] = list.get(i).getDate("day");
    System.out.println("surveyDate: " +surveyDate[i].getDate() + ", " + (surveyDate[i].getMonth()+1) + ", " + (surveyDate[i].getYear()+1900));
}
I/System.out: surveyDate: date: 7, month: 2, 2016
I/System.out: surveyDate: date: 21, month: 2, 2016
I/System.out: surveyDate: date: 2, month: 10, 2016