日期:2014-05-20  浏览次数:20898 次

【在线等】“时间字符串”转为“秒数”
现在可以获得如下变量:
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 是一样的。
------解决方案--------------------
探讨

别忘记了,你处于 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 Tes……

------解决方案--------------------
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);

------解决方案--------------------
探讨

实际上 Unix 纪元的毫秒值是以 UTC 时间 1970 年 1 月 1 日 0 时开始算起的。准备确地说,上面的 TimeZone 应该使用世界协调时:format.setTimeZone(TimeZone.getTimeZone("UTC"));

就秒以上单位的计时而言,可以认为 UTC 与 GMT 是一样的。