现在可以获得如下变量:
String yearStr;
String monthStr;
String dayStr;
String hourStr; // 24进制
String minuteStr;
String secondStr;分别为年、月、日、时、分、秒的字符串。我该如何获得,当前时间的“秒数”呢?
(就是,从那个传说中的起始点,到当前所经过的秒数)

解决方案 »

  1.   

    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();
    }
      

  2.   

    但是,当s = "1970-01-01 00:01:02";时,
    System.out.println(sdf.parse(s).getTime());
    值为:-28738000这里的getTime()不是从1970年1月1日0点0分0秒开始算的吗?
    那应该是62000才对啊
      

  3.   

    别忘记了,你处于 GMT+8 的时区上!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;
        }
    }
      

  4.   

    实际上 Unix 纪元的毫秒值是以 UTC 时间 1970 年 1 月 1 日 0 时开始算起的。准备确地说,上面的 TimeZone 应该使用世界协调时:format.setTimeZone(TimeZone.getTimeZone("UTC"));就秒以上单位的计时而言,可以认为 UTC 与 GMT 是一样的。
      

  5.   

    要是想到毫秒,该如何改下面的地方: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);
      

  6.   


    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);
      

  7.   

    Date的getTime()方法可得到毫秒值,除1000就是秒了