将日期转换为年和月

时间:2012-12-29 09:37:16

标签: android date

我正在编写一个应用程序,我必须在其中显示日期。现在我想将该日期从当前日期转换为年份和月份。

我的日期很像 - 2017年3月29日。

我想将此日期转换为年份和月份。

抱歉,我觉得你无法理解我的问题。我希望年份和月份的当前日期和上述日期的差异。

对不起我的解释。

8 个答案:

答案 0 :(得分:3)

您可以使用Joda时间并使用月份和年数作为单位计算两个LocalDate值之间的时间段(这是您在此处获得的值)。

示例

LocalDate dob = new LocalDate(1992, 12, 30);
        LocalDate date = new LocalDate(2010, 12, 29);

        Period period = new Period(dob, date, PeriodType.yearMonthDay());
        System.out.println(period.getYears() + " years and " +
                           period.getMonths() + " months");

答案 1 :(得分:1)

我使用Calender类找到了答案。

首先,我发现两天之间的差异,并使用那些天我找到了年份和月份。

在这里,我发布了我的代码,我认为这对其他人有帮助。

int days = Integer.parseInt(Utility.getDateDiffString("29/03/2017"));
int years = days/365;
int remainingDays = days - (365*years);
int months = remainingDays/30;

getDateDiffString()方法。在这种方法中,我们需要传递结束日期

public static String getDateDiffString(String endDate)
    {
        try
        {
            Calendar cal = Calendar.getInstance();

            SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
            Date dateTwo = dateFormat.parse(endDate); 

            long timeOne = cal.getTimeInMillis();
            long timeTwo = dateTwo.getTime();
            long oneDay = 1000 * 60 * 60 * 24;
            long delta = (timeTwo - timeOne) / oneDay;

            if (delta > 0) {
                return "" + delta + "";
            }
            else {
                delta *= -1;
                return "" + delta + "";
            }
        }
        catch (Exception e) 
        {
            e.printStackTrace();
        }
        return "";
    }

答案 2 :(得分:0)

使用Java Calendar类从日期开始获取年份

Calendar c=Calendar.getInstance();
SimpleDateFormat simpleDateformat=new SimpleDateFormat("yyyy MMM");
System.out.println(simpleDateformat.format(c.getTime()));


To get difference between two date

int diffInDays = (int)( (newerDate.getTime() - olderDate.getTime()) 
                 / (1000 * 60 * 60 * 24) )

答案 3 :(得分:0)

long timeDiff =(d1.getTime() - d2.getTime());

    String diff=String.format("%d year(s) %d day(s) %d hour(s) %d min(s) %d sec(s)",(TimeUnit.MILLISECONDS.toDays(timeDiff)/365),TimeUnit.MILLISECONDS.toDays(timeDiff)%365,
            TimeUnit.MILLISECONDS.toHours(timeDiff)
            - TimeUnit.DAYS.toHours(TimeUnit.MILLISECONDS
            .toDays(timeDiff)),
            TimeUnit.MILLISECONDS.toMinutes(timeDiff)
            - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS
            .toHours(timeDiff)),
            TimeUnit.MILLISECONDS.toSeconds(timeDiff)
            - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS
            .toMinutes(timeDiff)));
    System.out.println(diff);

在d1&中指定正确的日期。那么你会得到正确的差异答案

答案 4 :(得分:0)

如果你的日期格式是固定的,你可以这样做:

String myDate =" 29/03/2017";

String newDate = myDate.subString(6,10)+" - " + myDate.subString(3,5)

答案 5 :(得分:0)

此方法将普通字符串转换为日期格式

String currentDateString = "02/27/2012 17:00:00";
SimpleDateFormat sd = new SimpleDateFormat("mm/dd/yyyy HH:mm:ss");
Date currentDate = sd.parse(currentDateString);

之后你会得到正式的方法

答案 6 :(得分:0)

您应该使用SimpleDateFormate

例如:---你可以得到时间&日期如你所愿: -

                           Date email_date = m.getSentDate();// this is date which you are getting
            DateFormat date = new SimpleDateFormat("EEE MMM yyyy");
            DateFormat time = new SimpleDateFormat("hh:mm aa");
            String date_str=date.format(email_date);
            String time_str=time.format(email_date);

答案 7 :(得分:0)

首先将Date放入一个String变量中,如下所示:

String dateToConvert = "29/03/2017";

将日历实例化为:

Calendar convertedDate = Calendar.getInstance();

将该日期设置为日历

convertedDate.set(dateToConvert);<br/>

然后使用此行:

String datePicked = DateFormat.getDateInstance().format(convertedDate.getTime());

输出:2017年3月29日