现在可以获得如下变量:
String yearStr;
String monthStr;
String dayStr;
String hourStr; // 24进制
String minuteStr;
String secondStr;
分别为年、月、日、时、分、秒的字符串。
我该如何获得,当前时间的“秒数”呢?
(就是,从那个传说中的起始点,到当前所经过的秒数)
------解决方案--------------------
- Java code
String yearStr = "2012"; String monthStr = "5"; String dayStr = "10"; String hourStr = "18"; // 24进制 String minuteStr = "2"; String secondStr = "33"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String s= yearStr + "-" + monthStr + "-" + dayStr + " " + hourStr + ":" + minuteStr + ":" + secondStr; try { System.out.println(sdf.format(sdf.parse(s))); System.out.println(sdf.parse(s).getTime()); } catch (ParseException e) { e.printStackTrace(); }
------解决方案--------------------
别忘记了,你处于 GMT+8 的时区上!
- Java code
import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.TimeZone;public class Test { public static void main(String[] args) { DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); format.setTimeZone(TimeZone.getTimeZone("GMT")); Date date = parseDate("1970-01-01 00:01:02", format); System.out.println(date.getTime()); } public static Date parseDate(String str, DateFormat format) { Date date = null; try { date = format.parse(str); } catch (ParseException e) { e.printStackTrace(); } return date; }}
------解决方案--------------------
实际上 Unix 纪元的毫秒值是以 UTC 时间 1970 年 1 月 1 日 0 时开始算起的。准备确地说,上面的 TimeZone 应该使用世界协调时:format.setTimeZone(TimeZone.getTimeZone("UTC"));
就秒以上单位的计时而言,可以认为 UTC 与 GMT 是一样的。
------解决方案--------------------
------解决方案--------------------
- Java code
String year="1970"; String month="1"; String day="1"; String hour="00"; // 24进制 String minute="01"; String second="02"; Calendar c=Calendar.getInstance(); c.set(Integer.parseInt(year), Integer.parseInt(month)-1, Integer.parseInt(day), Integer.parseInt(hour), Integer.parseInt(minute), Integer.parseInt(second)); long a1=c.getTimeInMillis(); System.out.println(a1); System.out.println(c.getTime().getTime()); String str = String.format("%tF %<tT", a1); System.out.println("str:"+str);
------解决方案--------------------