【在线等】“时间字符串”转为“秒数”

LeonTown 2012-05-10 06:35:37
现在可以获得如下变量:
String yearStr;
String monthStr;
String dayStr;
String hourStr; // 24进制
String minuteStr;
String secondStr;

分别为年、月、日、时、分、秒的字符串。

我该如何获得,当前时间的“秒数”呢?
(就是,从那个传说中的起始点,到当前所经过的秒数)
...全文
314 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
东东不邪 2012-05-16
  • 打赏
  • 举报
回复
Date的getTime()方法可得到毫秒值,除1000就是秒了
hugo000002020 2012-05-11
  • 打赏
  • 举报
回复

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);
LeonTown 2012-05-11
  • 打赏
  • 举报
回复
要是想到毫秒,该如何改下面的地方:

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);
普凡 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

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

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

++
流星陨落 2012-05-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

别忘记了,你处于 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……
[/Quote]
++
  • 打赏
  • 举报
回复
实际上 Unix 纪元的毫秒值是以 UTC 时间 1970 年 1 月 1 日 0 时开始算起的。准备确地说,上面的 TimeZone 应该使用世界协调时:format.setTimeZone(TimeZone.getTimeZone("UTC"));

就秒以上单位的计时而言,可以认为 UTC 与 GMT 是一样的。
  • 打赏
  • 举报
回复
别忘记了,你处于 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;
}
}
LeonTown 2012-05-10
  • 打赏
  • 举报
回复
但是,当s = "1970-01-01 00:01:02";时,
System.out.println(sdf.parse(s).getTime());
值为:-28738000

这里的getTime()不是从1970年1月1日0点0分0秒开始算的吗?
那应该是62000才对啊。。。
huguang 2012-05-10
  • 打赏
  • 举报
回复
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();
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧