Extract date and time from the String "yyyy-MM-dd HH:mm" - java

There is String with the format of "yyyy-MM-dd HH:mm". In need to "extract" the date into var1 and the time into var2. Currently I can only format the string into the date.
private static Date toDate(String dateString) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date date = null;
try {
date = dateFormat.parse(dateString);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}

Use another SimpleDateFormat to format the resultant date into the required date and time Strings
Date date = toDate(dateString);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String dateString = dateFormat.format(date);
dateFormat.applyPattern("HH:mm");
String timeString = dateFormat.format(date);

Related

I want to compare string date (dd.MM.yyyy) to current date?

I have a String date coming in form of dd.MM.yyyy. I want to compare if its a future date (today+1 day)
I am trying to convert the string into date and getting current date from SimpleDateFormat but when trying to convert the string date I am getting the output in "EEE MMM dd HH:mm:ss zzz yyyy" format.
String profileUpdateChangeDate = "31.01.2023"
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
Date changeDate = sdf.parse(profileUpdateChangeDate);
_log.info("changeDate===>>>"+changeDate);
Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy");
String str = formatter.format(date);
_log.info("Currentdate-===>"+str);
How can I check if profileUpdateChangeDate is a future date?
You should be using the new java.time classes, so:
String profileUpdateChangeDate = "31.01.2023";
DateTimeFormatter df = DateTimeFormatter.ofPattern("dd.MM.yyyy");
LocalDate changeDate = LocalDate.parse(profileUpdateChangeDate, df);
LocalDate date = LocalDate.now();
System.out.printf("Is date %s in the future? %b%n", profileUpdateChangeDate, date.isBefore(changeDate));
You can compare the parsed date "changeDate" with the current date. If the "changeDate" is after the current date, then it is a future date.
String profileUpdateChangeDate = "31.01.2023";
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
Date changeDate = sdf.parse(profileUpdateChangeDate);
Date currentDate = new Date();
if (changeDate.after(currentDate)) {
System.out.println("profileUpdateChangeDate is a future date");
} else {
System.out.println("profileUpdateChangeDate is not a future date");
}

How to convert String into DateFormat in java?

I am working on Java. I have a String and I want to convert it into Date Format. Please see the lines of code for more details.
String dateString = "4:16:06 PM";
I want to convert it into the below Date:
Date convertedDate = 2014-04-22 16:16:06.00
How can I do this?
try this:
// get current date
SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
String a = dateFormat1.format(new Date());
// add current date to your time string
String dateString = a + " 4:16:06 PM";
SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd h:mm:ss a");
try {
// parse it. This is you date object.
Date d = dateFormat2.parse(dateString);
} catch (ParseException ex) {
ex.printStackTrace();
}
I think you are looking for following:
DateFormat df1 = new SimpleDateFormat("h:mm:ss a");
DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SS");
String dateString = "4:16:06 PM";
Date date;
try {
Calendar cal = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
date = df1.parse(dateString);
cal.setTime(date);
// Reset year, month, day to current state
cal.set(Calendar.YEAR, cal2.get(Calendar.YEAR));
cal.set(Calendar.MONTH, cal2.get(Calendar.MONTH));
cal.set(Calendar.DAY_OF_MONTH, cal2.get(Calendar.DAY_OF_MONTH));
Date convertedDate = cal.getTime();
System.out.println(df2.format(convertedDate));
} catch (ParseException e) {
e.printStackTrace();
}
Try this ,
String str_date="13-09-2011";
DateFormat formatter ;
Date date ;
formatter = new SimpleDateFormat("dd-MM-yyyy");
date = (Date)formatter.parse(str_date);
System.out.println("Date " +date.getTime());
Try this
public class DateClass
{
public static void main(String[] args) throws Exception {
String target = "4:16:06 PM";
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
DateFormat dff = new SimpleDateFormat("HH:mm:ss");
Date d=new Date();
String abc="4:16:06 PM";
Date result = new SimpleDateFormat("h:mm:ss a").parse(abc);
System.out.println("The result is "+df.format(d)+" "+dff.format(result));
}
}
Feel free to ask anything if you don't understand it and plz respond did it work or not?

convert a date as a string to a date as a string in another format

How can i parse String "2013-03-31", so i will get - "31 March 2013 Sun".
I tried to parse as bellow:
final SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy DD");
try {
Date data = formatter.parse(eventDate);
System.out.println(data);
} catch (Exception e) {
System.out.println(e.getMessage());
}
And i get Unparseable date: "2013-03-31" (at offset 10) exception text.
Is that String represented date is correct, and if correct how i must parse it.
Input format: "yyyy-MM-dd"
Output format: "dd MMMM yyyy EEE"
final SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd");
final SimpleDateFormat outputFormat = new SimpleDateFormat("dd MMMM yyyy EEE");
try {
Date data = inputFormat.parse(eventDate);
System.out.println(outputFormat.format(data));
} catch (Exception e) {
System.out.println(e.getMessage());
}
see these links
string to date
How to parse a date?
How to parse date string to Date?
date to string
Convert java.util.Date to String
How to convert current date into string in java?
You don't specify a date input format:
String eventDate = "2013-03-31";
final SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd");
final SimpleDateFormat outputFormat = new SimpleDateFormat(
"dd MMMM yyyy EEE");
try {
Date date = inputFormat.parse(eventDate);
System.out.println(outputFormat.format(date));
} catch (Exception e) {
e.printStackTrace();
}
public static String getGmtTmFromLcl(String inputDtm, String inputFormat, String outputFormat) throws Exception {
SimpleDateFormat format = new SimpleDateFormat(inputFormat);
Date dt = format.parse(inputDtm);
format = new SimpleDateFormat(outputFormat);
return format.format(dt);
}

How can I convert a String from milliseconds to date?

I have this code:
String id = c.getString("data");
String name = ((TextView) view.findViewById(R.id.TextView05)).getText().toString();
public static String getDate(long seconds, String dateFormat)
{
DateFormat formatter = new SimpleDateFormat("yyyy MMMM dd HH:mm");
long now = System.currentTimeMillis();
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(now);
return formatter.format(calendar.getTime());
}
The "data" is 1341435600000. I want to have this String from milliseconds to date.
try {
String str_date="11-June-07";
DateFormat formatter ;
Date date ;
formatter = new SimpleDateFormat("dd-MMM-yy");
date = (Date)formatter.parse(str_date);
System.out.println("Today is " +date );
}
catch (ParseException e)
{
System.out.println("Exception :"+e);
}
for convert milliseconds to Date
long yourmilliseconds = 1119193190;
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy HH:mm");
Date resultdate = new Date(yourmilliseconds);
Something like this:
SimpleDateFormat ss = (SimpleDateFormat) SimpleDateFormat.getInstance();
ss.applyPattern("yyyy MM dd HH:mm");
// Date to String:
String dateToString = ss.format(new Date());
//String to Date
Date stringToDate = ss.parse("2012 02 16 14:10"));
String dtStart = "2010-10-15T09:27:37Z";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
try {
Date date = format.parse(dtStart);
System.out.println(date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
The same method is working fine for me. Why don't yours?
/** Called when the activity is first created. */
#Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
long cTime = System.currentTimeMillis();
String date = getDate(cTime, "dd/MM/yyyy hh:mm:ss.SSS");
Toast.makeText(getApplicationContext(), date, Toast.LENGTH_SHORT).show();
}
public static String getDate(long milliSeconds, String dateFormat)
{
// Create a DateFormatter object for displaying date in specified format.
DateFormat formatter = new SimpleDateFormat(dateFormat);
// Create a calendar object that will convert the date and time value in milliseconds to date.
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(milliSeconds);
return formatter.format(calendar.getTime());
}
if you are not bothered about the Date format, just use it as below
String id = c.getString("data"); //"1341435600000";
Date date123 = new Date(Long.parseLong(id));
System.out.println(date123);
Code snippet to help:
String timestamp="20140809";
DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
System.out.println("date :"+dateFormat.parse(timestamp).getTime());

How to convert the following string to date or calendar object in Java?

Have a string like 2011-03-09T03:02:10.823Z, how to convert it to Date or calendar object in Java?
You can use SimpleDateFormat#parse() to convert a String in a date format pattern to a Date.
String string = "2011-03-09T03:02:10.823Z";
String pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
Date date = new SimpleDateFormat(pattern).parse(string);
System.out.println(date); // Wed Mar 09 03:02:10 BOT 2011
For an overview of all pattern characters, read the introductory text of SimpleDateFormat javadoc.
To convert it further to Calendar, just use Calendar#setTime().
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
// ...
I want to show "2017-01-11" to "Jan 11" and this is my solution.
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat df_output = new SimpleDateFormat("MMM DD");
Calendar cal=Calendar.getInstance();
Date date = null;
try {
date = df.parse(selectedDate);
String outputDate = df.format(date);
date = df_output.parse(outputDate);
cal.setTime(date);
} catch (ParseException e) {
e.printStackTrace();
}
import java.util.*;
import java.text.*;
public class StringToCalender {
public static void main(String[] args) {
try { String str_date="11-June-07";
DateFormat formatter ;
Date date ;
formatter = new SimpleDateFormat("dd-MMM-yy");
date = (Date)formatter.parse(str_date);
Calendar cal=Calendar.getInstance();
cal.setTime(date);
System.out.println("Today is " +date );
} catch (ParseException e)
{System.out.println("Exception :"+e); }
}
}
Your given date is taken as a string that is converted into a date type by using the parse() method. The parse() method invokes an object of DateFormat. The setTime(Date date) sets the formatted date into Calendar. This method invokes to Calendar object with the Date object.refer
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
Date date = sdf.parse(strDate);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
try this.(strDate id your string format of Date)

Categories