Java 时间转换为时间戳

Java 时间转换为时间戳,java,datetime,timestamp-with-timezone,Java,Datetime,Timestamp With Timezone,我有一个登录时间表 2013年3月31日:17:03:30-0700 我想在这里把它转换成一个时间戳,时区为70。我该怎么做 try { String time = myMap.get("timestamp"); String splitTime[] = time.split("-");//input Timestamp 31/Mar/2013:17:03:30 -0700 Date date = new SimpleDateFormat("dd/MMM/yyyy:HH:

我有一个登录时间表

2013年3月31日:17:03:30-0700

我想在这里把它转换成一个时间戳,时区为70。我该怎么做

try {
    String time = myMap.get("timestamp");
    String splitTime[] = time.split("-");//input Timestamp 31/Mar/2013:17:03:30 -0700
    Date date = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss").parse(splitTime[0]);
    myMap.put("timestamp", String.valueOf(new Long(date.getTime() / 1000)));
} catch (ParseException e) {
     e.printStackTrace();
}
如何使用这个时区?

试试这个

Date date = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss Z").parse(s);
请注意,如果您的默认语言是英语,它将只解析
/Mar/
,否则使用

Date date = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss Z", Locale.US).parse(s);
试试这个

Date date = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss Z").parse(s);
请注意,如果您的默认语言是英语,它将只解析
/Mar/
,否则使用

Date date = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss Z", Locale.US).parse(s);

你可以用时区信息减去/增加你约会的时间:

String time = myMap.get("timestamp");
String splitTime[] = time.split("-");//input Timestamp 31/Mar/2013:17:03:30 -0700
Date date = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss").parse(splitTime[0]);

long timestamp = date.getTime() / 1000;  ///datetime in seconds

long timezonehour = Long.parseLong(splitTime[1].substring(0,1));   // 07
long timezoneminutes = Long.parseLong(splitTime[1].substring(2,3));  // 00

timezonehour +=  timezoneminutes/60;

long timezone_seconds = (timezonehour/60)/60;   // in seconds

timestamp += timezone_seconds // final computed value

我知道这看起来很难看,但也帮不上什么忙。

你可以用时区信息减去/增加约会的时间:

String time = myMap.get("timestamp");
String splitTime[] = time.split("-");//input Timestamp 31/Mar/2013:17:03:30 -0700
Date date = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss").parse(splitTime[0]);

long timestamp = date.getTime() / 1000;  ///datetime in seconds

long timezonehour = Long.parseLong(splitTime[1].substring(0,1));   // 07
long timezoneminutes = Long.parseLong(splitTime[1].substring(2,3));  // 00

timezonehour +=  timezoneminutes/60;

long timezone_seconds = (timezonehour/60)/60;   // in seconds

timestamp += timezone_seconds // final computed value

我知道这看起来很难看,但无法进一步帮助。

试试
“dd/MMM/yyyy:HH:mm:ss Z”
,您可以解析整个字符串,而无需手动拆分。@vikingsteve-请作为回答发布
“dd/MMM/yyyy:HH:mm:ss Z”
您可以解析整个字符串,而无需手动拆分。@vikingsteve-请将其作为答案发布。添加
date.getTime()
将以
long
形式给出。添加
date.getTime()
将以
long
形式给出。