Android 格式化长值到日期字符串?
我正在开发一个应用程序,其中我必须将长值转换为日期字符串并显示。为了达到这个目的,我使用了下面的函数,但是它返回了70年代和80年代的日期,这显然是不合适的。我正在使用以下功能: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
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,这个值还是错的吗?你的代码中有个错误,没有足够的详细信息让我帮你找到它。