我想MM/DD/YY从时间戳中获取日期格式.
我使用了下面的方法,但没有给出正确的输出
final Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(Long.parseLong(1306249409));
Log.d("Date--",""+cal.DAY_OF_MONTH);
Log.d("Month--",""+cal.MONTH);
Log.d("Year--",""+cal.YEAR);
Run Code Online (Sandbox Code Playgroud)
但它给出了如下输出
日期 - 5个月 - 2年 - 1
正确的日期是2010年5月24日的Timestamp - 1306249409
注 - 时间戳由我的应用程序中使用的Web服务接收.
Jig*_*shi 23
更好的方法
简单地使用 SimpleDateFormat
new SimpleDateFormat("MM/dd/yyyy").format(new Date(timeStampMillisInLong));
Run Code Online (Sandbox Code Playgroud)
你的方法中的错误
DAY_OF_MONTH,, MONTH...等只是Calendar类内部使用的常量int值
你可以得到所代表的日期cal由cal.get(Calendar.DATE)
Bad*_*llz 20
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String time = sdf.format(date);
Run Code Online (Sandbox Code Playgroud)
怎么了:
Calendar.DAY_OF_MONTH,Calendar.MONTH等是用于访问这些特定领域的静态常量.(无论setTimeInMillis你提供什么,它们都将保持不变.)
如何解决:
要获取这些特定字段,您可以使用.get(int field)-method,如下所示:
Log.d("Month--",""+cal.get(Calendar.MONTH));
Run Code Online (Sandbox Code Playgroud)
正如其他人指出的那样,有更方便的方法来格式化日志记录日期.您可以使用例如SimpleDateFormat,或者,正如我在记录时通常所做的那样,使用格式字符串和String.format(formatStr, Calendar.getInstance()).