Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.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
Android 格式化长值到日期字符串?_Android_Date_String Formatting_Android Date - Fatal编程技术网

Android 格式化长值到日期字符串?

Android 格式化长值到日期字符串?,android,date,string-formatting,android-date,Android,Date,String Formatting,Android Date,我正在开发一个应用程序,其中我必须将长值转换为日期字符串并显示。为了达到这个目的,我使用了下面的函数,但是它返回了70年代和80年代的日期,这显然是不合适的。我正在使用以下功能: public static String convertDateFromLongToCompleteString(long date) { Date d = new Date(date * 1000); SimpleDateFormat dateformat = new SimpleDateFormat

我正在开发一个应用程序,其中我必须将长值转换为日期字符串并显示。为了达到这个目的,我使用了下面的函数,但是它返回了70年代和80年代的日期,这显然是不合适的。我正在使用以下功能:

public static String convertDateFromLongToCompleteString(long date) {
    Date d = new Date(date * 1000);
    SimpleDateFormat dateformat = new SimpleDateFormat("dd/MM/yyyy hh:mm a");
    String formattedDateFromLong = dateformat.format(d);
    return formattedDateFromLong;
}
long值仅仅是
System.currentTimeMillis()
,当我必须向用户显示它时,我必须格式化我正在使用的上述函数。我已经检查了系统和设备的日期、区域和时间,一切正常。请更新此问题出现的原因以及我如何获得确切日期。谢谢

编辑


我也尝试过不与1000相乘,它给我1970年的时间和日期。

如果你的
长日期
只是
系统。currentTimeMillis()
,那么不需要与
1000相乘


日期d=新日期(日期)

替换日期d=新日期(日期*1000)
日期d=新日期(日期)

如果您仅对
System.currentTimeMillis()
使用上述方法,则可以调用
日期
构造函数,而无需任何参数,它将为您提供引用当前日期和时间的
日期
对象。这将是解决您的问题的更简单的方法。希望这有帮助。

当您调用
系统时,无需执行
(日期*1000)
。如果不需要其他逻辑,则currentTimeMillis()
。@Egor如果我不使用它,它会给我1970年的日期和时间。您使用它的方式会给您一个类似于从1月1日起的毫秒数的时间,1970 GMT.*1000-大约是公元44970年2月底。我得到时间,将它的值保存在DB中,当我必须向用户显示它时,我将其格式化。@UsamaSarwar,你确定在将值存储在DB中并取回后,它是相同的值吗?也许这就是问题所在?因为我真的不相信System.currentTimeMillis()会给你1970年,如果你不是1970年:)耶..我把这个值保存在一个表中,然后检索那个保存的值。@UsamaSarwar,这个值还是错的吗?你的代码中有个错误,没有足够的详细信息让我帮你找到它。