如何从Timestamp获取MM/DD/YY格式的日期

Moh*_*ada 19 java android

我想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值

你可以得到所代表的日期calcal.get(Calendar.DATE)

  • 请不要使用小写的"l"表示该数字是文字"long"; 总是使用大写的`L`.`l`看起来太像数字`1`. (6认同)

Bad*_*llz 20

使用SimpleDateFormat

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)


aio*_*obe 7

怎么了:

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()).