How to Convert Date to a Particular Format in Android

How to convert Date to a particular format in android?

This is modified code that you should use:

String date="Mar 10, 2016 6:30:00 PM";
SimpleDateFormat spf=new SimpleDateFormat("MMM dd, yyyy hh:mm:ss aaa");
Date newDate=spf.parse(date);
spf= new SimpleDateFormat("dd MMM yyyy");
date = spf.format(newDate);
System.out.println(date);

Use hh for hours in order to get correct time.

Java 8 and later

Java 8 introduced new classes for time manipulation, so use following code in such cases:

    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMM dd, yyyy h:mm:ss a");
LocalDateTime dateTime = LocalDateTime.parse(date, formatter);
DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("dd MMM yyyy");
System.out.println(dateTime.format(formatter2));

Use h for hour format, since in this case hour has only one digit.

how to convert date format in android

To get AM PM and 12 hour date format use hh:mm:ss a as string formatter WHERE hh is for 12 hour format and a is for AM PM format.

Note: HH is for 24 hour and hh is for 12 hour date format

SimpleDateFormat formatter = new SimpleDateFormat("mm/dd/yyyy hh:mm:ss a");
String newFormat = formatter.format(testDate);

Example

String date = "2011/11/12 16:05:06";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/mm/dd HH:MM:SS");
Date testDate = null;
try {
testDate = sdf.parse(date);
}catch(Exception ex){
ex.printStackTrace();
}
SimpleDateFormat formatter = new SimpleDateFormat("mm/dd/yyyy hh:mm:ss a");
String newFormat = formatter.format(testDate);
System.out.println(".....Date..."+newFormat);

How do I change date time format in Android?

Here is working code

public String parseDateToddMMyyyy(String time) {
String inputPattern = "yyyy-MM-dd HH:mm:ss";
String outputPattern = "dd-MMM-yyyy h:mm a";
SimpleDateFormat inputFormat = new SimpleDateFormat(inputPattern);
SimpleDateFormat outputFormat = new SimpleDateFormat(outputPattern);

Date date = null;
String str = null;

try {
date = inputFormat.parse(time);
str = outputFormat.format(date);
} catch (ParseException e) {
e.printStackTrace();
}
return str;
}

Documentation: SimpleDateFormat | Android Developers

How to convert any type of Date to a particular format in android?

java.time

    String[] exampleStrings = {
"2018-09-10T10:35:00.377Z",
"2018-09-10T10:35:00.12Z",
"2018-09-10"
};

for (String example : exampleStrings) {
if (example.contains("T")) {
OffsetDateTime dateTime = OffsetDateTime.parse(example);
System.out.println("Date: " + dateTime.toLocalDate()
+ " Time: " + dateTime.toLocalTime()
+ " Offset: " + dateTime.getOffset());
} else {
LocalDate date = LocalDate.parse(example);
System.out.println("Date: " + date);
}
}

Your formats are allowed variants of ISO 8601. java.time, the modern Java date and time API, parses these formats without any explicit formatter. The first two example strings have date and time and the characteristic T to separate them, and an offset from UTC (Z means offset 0). The third has only a date. So test whether the string has the T in it and use the corresponding java.time class for the rest.

Output from the above snippet is:

Date: 2018-09-10 Time: 10:35:00.377 Offset: Z
Date: 2018-09-10 Time: 10:35:00.120 Offset: Z
Date: 2018-09-10

I don’t know how you will handle the two different types OffsetDateTime and LocalDate in the rest of your code. If you don’t need the time part, just the date, use dateTime.toLocalDate() to get a LocalDate and just pass this type on in all cases. Since you do need the time part, you may, depending on your situation and requirements, get away with the opposite conversion: in the date case you may get an OffsetDateTime from for example date.atStartOfDay().atOffset(ZoneOffset.UTC), but please do check whether this gives you an appropriate time.

I do agree with the now deleted answer by Khemraj, though, that your server ought to be able to deliver one consistent format or at least indicate which format it is giving you.

Question: Can I use java.time on Android?

Yes, java.time works nicely on older and newer Android devices. It just requires at least Java 6.

  • In Java 8 and later and on newer Android devices (from API level 26, I’m told) the modern API comes built-in.
  • In Java 6 and 7 get the ThreeTen Backport, the backport of the new classes (ThreeTen for JSR 310; see the links at the bottom).
  • On (older) Android use the Android edition of ThreeTen Backport. It’s called ThreeTenABP. And make sure you import the date and time classes from org.threeten.bp with subpackages.

Links

  • Wikipedia article: ISO 8601
  • Oracle tutorial: Date Time explaining how to use java.time.
  • Java Specification Request (JSR) 310, where java.time was first described.
  • ThreeTen Backport project, the backport of java.time to Java 6 and 7 (ThreeTen for JSR-310).
  • ThreeTenABP, Android edition of ThreeTen Backport
  • Question: How to use ThreeTenABP in Android Project, with a very thorough explanation.

Date format conversion Android

try this

SimpleDateFormat form = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
java.util.Date date = null;
try
{
date = form.parse("2011-03-27T09:39:01.607");
}
catch (ParseException e)
{

e.printStackTrace();
}
SimpleDateFormat postFormater = new SimpleDateFormat("MMMMM dd, yyyy");
String newDateStr = postFormater.format(date);

now newDateStr = March 27, 2011;

How to format date and time in Android?

Use the standard Java DateFormat class.

For example to display the current date and time do the following:

Date date = new Date(location.getTime());
DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(getApplicationContext());
mTimeText.setText("Time: " + dateFormat.format(date));

You can initialise a Date object with your own values, however you should be aware that the constructors have been deprecated and you should really be using a Java Calendar object.

Convert date format to different date format in android

You mixed:

mm  =  minutes

with

MM  =  months

So you have to change from:

SimpleDateFormat spf = new SimpleDateFormat("mm/dd/yy");

in to:

SimpleDateFormat spf = new SimpleDateFormat("MM/dd/yy");

When you print before changes:

System.out.println(newDate);

You will receive:

 Tue Jan 07 00:04:00 WET 2020
/\
||
||
your minutes

Full working example

(with better naming)

try {
String inputDate = "04/07/20";
SimpleDateFormat inputFormat = new SimpleDateFormat("MM/dd/yy");

Date parsedDate = inputFormat.parse(inputDate);
SimpleDateFormat outputFormat = new SimpleDateFormat("dd MMMM, yy");

inputDate = outputFormat.format(parsedDate);
System.out.println(inputDate);
} catch (Exception e) {
e.printStackTrace();
}

how to convert string to dateformat dd/MM/yyyy

Try this:

String date="15/02/2014";
SimpleDateFormat dateFormat= new SimpleDateFormat("dd/MM/yyyy");

try {
Date d=dateFormat.parse(date);
System.out.println("DATE"+d);
System.out.println("Formated"+dateFormat.format(d));
}
catch(Exception e) {
//java.text.ParseException: Unparseable date: Geting error
System.out.println("Excep"+e);
}

Hope this help.

How to convert date time from one format to another in Android?

Try with below code:

String date = "2014-11-25 14:30";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd HH:MM");
Date testDate = null;
try {
testDate = sdf.parse(date);
}catch(Exception ex){
ex.printStackTrace();
}
SimpleDateFormat formatter = new SimpleDateFormat("MMM dd,yyyy hh:mm a");
String newFormat = formatter.format(testDate);
System.out.println(".....Date..."+newFormat);

convert date time in a specific format to timestamp android

In your code, your are using "MM-dd-yyyy K:mm aa" pattern, that mean the first value is the month. But it the parse value, "18" is the month and it's not a valid month. I think you should change the pattern to "dd-MM-yyyy K:mm aa".

And it's better to use Calendar to get the timestamp:

try {
SimpleDateFormat dateFormat = SimpleDateFormat("MM-dd-yyyy K:mm aa");
Date parsedDate = dateFormat.parse("10-18-2019 01:05 pm");
Calendar cal = Calendar.getInstance();
cal.setTime(parsedDate);
long timestamp = cal.getTimeInMillis();
} catch (Exception: e) {
e.printStackTrace();
}


Related Topics



Leave a reply



Submit