-4

I have a date string in this format '20161201'.
How to make this a datetime string to be july 2016?

I want to show 6 months before that datetime string.
Is it possible?

Also how do I convert just '20161201' to Dec 2016?

Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
Indra Suandi
  • 47
  • 1
  • 5

3 Answers3

0

For convert '20161201' to 'Dec 2016':

    //Convert string to date
    String dateString = "20161201";
    SimpleDateFormat parseDateFormat = new SimpleDateFormat("yyyyMMdd");
    Date convertedDate = new Date();
    try {
        convertedDate = parseDateFormat.parse(dateString);
    } catch (ParseException e) {
        e.printStackTrace();
    }

    //Convert date to string
    SimpleDateFormat outputDateFormat = new SimpleDateFormat("MMM yyyy");
    String result = outputDateFormat.format(convertedDate);

    //Print the result
    System.out.println(result);

In '6 months' to millisecond is 15778476000. You can get the date after 6 months in millisecond by using

long resultdate = convertedDate.getTime() - 15778476000L;

and then

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(resultdate);
String result = outputDateFormat.format(calendar.getTime());

to get the result

https://developer.android.com/reference/java/text/SimpleDateFormat.html https://developer.android.com/reference/java/util/Date.html https://developer.android.com/reference/java/util/Calendar.html#setTimeInMillis(long)

hungps
  • 389
  • 2
  • 11
0

you change the format using the following code,

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd", Locale.getDefault());
    SimpleDateFormat expectedSDF = new SimpleDateFormat("MMMM yyyy", Locale.getDefault());
    Date date = simpleDateFormat.parse(dateString);
    String newFormatString = expectedSDF.format(date);

And for the countdown, use CountDownTimer

https://developer.android.com/reference/android/os/CountDownTimer.html

sadat
  • 4,004
  • 2
  • 29
  • 49
0

how to make this datetime string to be july 2016
I want to show 6 months before that datetime string

July is 5 months...

Here's the 6 month answer

java.util.Calendar c = java.util.Calendar.getInstance();
c.setTime(new SimpleDateFormat("yyyyMMdd").parse("20161201"));
c.set(Calendar.MONTH, c.get(Calendar.MONTH)-6);
String output = new SimpleDateFormat("MMMM yyyy").format(c.getTime()));
// June 2016
OneCricketeer
  • 179,855
  • 19
  • 132
  • 245