如何在Android中获取完整日期?

时间:2011-09-19 04:37:36

标签: java android calendar

我知道在日历实例的帮助下在android中获取日期。

 Calendar c = Calendar.getInstance();

 System.out.println("====================Date is:"+ c.get(Calendar.DATE));

但是我只得到了日期的数量。 。 。 在我的应用程序中,我必须根据Date Formate进行一些计算。因此,如果月份发生变化,那么计算就会出错。 因此,我想要提供月,年和当前日期日期的完整日期。 如果我想根据该日期进行某些计算,该怎么办? 如:如果日期少于两周,则应打印该消息。 。 。

请指导我。 感谢。

5 个答案:

答案 0 :(得分:2)

看这里,

Date cal=Calendar.getInstance().getTime();
String date = SimpleDateFormat.getDateInstance().format(cal);

表示完整日期格式SimpleDateFormat

如果你想对日期实例进行计算,我认为你应该使用Calendar.getTimeInMillis()字段来计算这些毫秒。

编辑:这些是SImpleDateFormat类的格式。

String[] formats = new String[] {
  "yyyy-MM-dd",
  "yyyy-MM-dd HH:mm",
  "yyyy-MM-dd HH:mmZ",
  "yyyy-MM-dd HH:mm:ss.SSSZ",
  "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
 };
for (String format : formats) {
   SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.US);
   System.err.format("%30s %s\n", format, sdf.format(new Date(0)));
   sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
   System.err.format("%30s %s\n", format, sdf.format(new Date(0)));
}

编辑:两个日期差异(日期编辑:2011年9月21日)

String startTime = "2011-09-19 15:00:23"; // this is your date to compare with current date 

            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
            Date date1 = dateFormat.parse(startTime);

     // here I make the changes.... now Date d use a calendar's date 

           Date d = Calendar.getInstance().getTime(); // here you can use calendar beco'z date is now deprecated ..

           String systemTime =(String) DateFormat.format("yyyy-MM-dd HH:mm:ss", d.getTime());

           SimpleDateFormat df1;

           long diff = (d.getTime() - date1.getTime()) / (1000);

           int Totalmin =(int) diff / 60;
           int hours= Totalmin/60;
           int day= hours/24;
           int min = Totalmin % 60;
           int second =(int) diff % 60;


if(day < 14)
 {
  // your stuff here ... 
  Log.e("The day is within two weeks");
 }
 else
  {
   Log.e("The day is more then two weeks");
  }         

感谢。

答案 1 :(得分:1)

你可以使用

//try different flags for the last parameter 
DateUtils.formatDateTime(context,System.currentTimeMillis(),DateUtils.FORMAT_SHOW_DATE);

所有选项选中http://developer.android.com/reference/android/text/format/DateUtils.html

答案 2 :(得分:1)

试试这个,

int month = c.get(Calendar.MONTH);
  int year = c.get(Calendar.YEAR);
  int day = c.get(Calendar.DAY_OF_MONTH);
  System.out.println("Current date : " 
  + day + "/" + (month + 1) + "/" + year);
  }

答案 3 :(得分:1)

使用SimpleDateFormat类,

String date = SimpleDateFormat.getDateInstance().format(new Date());

答案 4 :(得分:1)

我正在使用以下方法来获取日期和时间。您可以将此处的语言环境更改为阿拉伯语或者您希望以特定语言获取日期。

public static String getDate(){
    String strDate;
    Locale locale = Locale.US;
    Date date = new Date();
    strDate = DateFormat.getDateInstance(DateFormat.DEFAULT, locale).format(date);

    return strDate;
}

public static String getTime(){
    String strTime;
    Locale locale = Locale.US;
    Date date = new Date();
    strTime = DateFormat.getTimeInstance(DateFormat.DEFAULT, locale).format(date);

    return strTime;
}

您可以获取该值并将其保存在String中,如下所示

String Date= getDate();
String Time = getTime();