java - How can I create a DateTime String using a date String and time String? -
i want create datetime string format 2013-08-30t15:06:00 using 3 strings.one string has date "30-aug-2013" , second string has time "15:06" , last string has days value "2".now want use these 3 strings create resulted string "2013-08-28t15:06:00". days value create date in past, in case date changes 30th aug 28 aug
solution have tried:
public string getformatteddate(string date, string selecteddays, string time) { string dtstart = date; simpledateformat format = new simpledateformat("dd-mm-yyyy"); try { date dateobject = format.parse(dtstart); system.out.println(date); calendar calendar = new gregoriancalendar(); calendar.settime(dateobject); calendar.add(calendar.day_of_month, integer.valueof(selecteddays)); system.out.println(calendar.gettime()); } catch (parseexception e) { // todo auto-generated catch block e.printstacktrace(); } } in above solution calendar.add add days instead of removing days date.also don't know how use time string set on date object.
if time string in format, you'll need use time.split(":") hours , minutes.
you might want specify output format instead of using locale default format also.
add minus sign substract instead of adding calendar.add().
your code use dd-mm-yyyy month part written, 08-aug-2013 should parsed using dd-mmm-yyyy instead.
this should output specified
public static string getformatteddate(string date, string selecteddays, string time) { string dtstart = date; calendar calendar = new gregoriancalendar(); calendar.clear(); simpledateformat outputformat = new simpledateformat("yyyy-mm-dd't'hh:mm:ss"); simpledateformat format = new simpledateformat("dd-mmm-yyyy"); // should mmm , not mm according date format 08-aug-2013 try { date dateobject = format.parse(dtstart); system.out.println(date); calendar.settime(dateobject); string[] hoursmins = time.split(":"); int hours = integer.valueof(hoursmins[0]); int minutes = integer.valueof(hoursmins[1]); calendar.set(calendar.hour_of_day, hours); calendar.set(calendar.minute, minutes); calendar.set(calendar.second, 0); // here, have no idea seconds, set them 0 calendar.add(calendar.day_of_month, -integer.valueof(selecteddays)); // add minus sign substract // system.out.println(calendar.gettime()); // use simpledateformat instead system.out.println(outputformat.format(calendar.gettime())); // system.out.println(calendar.gettime()); } catch (parseexception e) { // todo auto-generated catch block e.printstacktrace(); } return outputformat.format(calendar.gettime()); } for place read formatting symbols, check the bottom of link, it's pretty explained.
calling getformatteddate("08-aug-2013", "2", "15:05"); code output 2013-08-06t15:05.
edit : forgot seconds, output : 2013-08-06t15:05:00
Comments
Post a Comment