首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何隐藏像2016-4-10 :00:00到时间戳这样的字符串数据?

如何隐藏像2016-4-10 :00:00到时间戳这样的字符串数据?
EN

Stack Overflow用户
提问于 2016-05-11 07:41:03
回答 2查看 62关注 0票数 1

我想把像2016-4-10 00:00:00这样的数据转换成时间戳。

我使用以下代码(我将此日期作为参数发送到此方法):

代码语言:javascript
复制
public static long parseUTimeAndGiveTimestamp(String time) {
    if (time != null && !time.equals("")) {    
        long longTime = 0;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS");
        Date date;
       try {
           time += ".000";
           date = sdf.parse(time);
       } catch (Exception e) {
           e.printStackTrace();
           return longTime;
       }
       longTime = date.getTime();
       return longTime / 1000;
   }
   return 0;
}

但是我得到了1460235600值,如果我再一次转换它,我得到:Sat,2016年4月9日21:00:00

(在10.04之前-09.04之后)

这样你就能帮我?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-11 09:53:34

您的代码没有问题。时区有一些问题。您的SimpleDateFormat将使用本地时区。您可能正在为您的地区获得时间戳,并且在将其转换回日期时,您将签入GMT时区。要测试这一点,只需添加

sdf.setTimeZone(TimeZone.getTimeZone("GMT"));

在解析日期之前。

因此,基本上您没有使用相同的时区将日期转换为时间戳,同时将时间戳转换为区域。

票数 1
EN

Stack Overflow用户

发布于 2016-05-11 07:48:08

尝试使用一个M来解析个位数的月份格式。它也能正确地处理两位数.

代码语言:javascript
复制
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-M-dd kk:mm:ss.SSS");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37156117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档