给一个指定的日期时间“2011-10-18 15:24:25”,加上小时分钟(如10小时,40分钟),如何计算相加之后的日期时间?
我用到calendar类,不知如何将字符串“2011-10-18 15:24:25”,转化为long形;
请高手指教,谢谢!
------解决方案--------------------
先转为 Date , 在转换成 calendar
------解决方案--------------------
- Java code
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date date = format.parse("2011-10-18 15:24:25"); System.out.print(date.getTime()); } catch (ParseException e) { e.printStackTrace(); }
------解决方案--------------------
- Java code
import java.text.DateFormat;import java.text.SimpleDateFormat;import java.text.ParseException;import java.util.Date;public class CalendarDemo1 { public static void main(String[] args) { String timeStr="2011-10-18 15:24:25"; DateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date=null; long timeLong=0; try{ date=df.parse(timeStr); timeLong=date.getTime(); System.out.println("long:"+timeLong); }catch(ParseException e){ e.printStackTrace(); } }}
------解决方案--------------------
下面是有时间相加的,其实不是一定要用Calendar的
- Java code
import java.text.DateFormat;import java.text.SimpleDateFormat;import java.text.ParseException;import java.util.Date;import java.util.Calendar;public class CalendarDemo1 { public static void main(String[] args) { String timeStr="2011-10-18 15:24:25"; DateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date=null; long timeLong=0; long timeAdded=0; try{ date=df.parse(timeStr); timeLong=date.getTime(); System.out.println("long:"+timeLong); Calendar c=Calendar.getInstance(); c.setTime(date); c.add(Calendar.MINUTE,40); timeAdded=c.getTimeInMillis(); System.out.println("Added time:"+c.getTime()); System.out.println("Added 40 minutes:"+timeAdded); }catch(ParseException e){ e.printStackTrace(); } }}
------解决方案--------------------
顶4楼 正解
------解决方案--------------------
如果再添加10小时,加上这一行
- Java code
c.add(Calendar.HOUR_OF_DAY,10);
------解决方案--------------------
- Java code
public static void main(String[] args) { try { DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = format.parse("2011-10-18 15:24:25"); Calendar c = Calendar.getInstance(); c.setTime(date); c.add(Calendar.HOUR_OF_DAY, 10); c.add(Calendar.MINUTE, 40); String s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(c .getTime()); System.out.println(s); } catch (Exception e) { e.printStackTrace(); } }