【问题标题】:Get Local Timestamp not working Android获取本地时间戳不起作用Android
【发布时间】:2016-08-12 11:22:59
【问题描述】:

我正在尝试从日期获取时间戳。但是我正在尝试获取本地时间戳,但是设置时区的事件,我仍然在 UTC 中获取时间戳。

这是我的代码:

public static Long dateToTimestamp(String dateFormat) {
        SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm");
        formatter.setTimeZone(TimeZone.getDefault());
        Log.e("AQM", TimeZone.getDefault().getDisplayName());
        try {
            Date date = formatter.parse(dateFormat);
            return date.getTime() / 1000;
        } catch (ParseException e) {
            return Long.parseLong("0");
        }
    }

这是日志:

04-19 23:11:01.751 4593-4593/br.com.vitorvillar.aquariummanager E/AQM: 20/04/2016 23:10
04-19 23:11:01.751 4593-4593/br.com.vitorvillar.aquariummanager E/AQM: Brasilia Standard Time
04-19 23:11:01.751 4593-4593/br.com.vitorvillar.aquariummanager E/AQM: Brasilia Standard Time
04-19 23:11:01.761 4593-4593/br.com.vitorvillar.aquariummanager E/AQM: 1461204600

日期和时区都可以,时区是Brasilia Standard Time,但时间戳距离这里还有 3 小时。当我在在线转换器中转换时,日期是 21/04/2016 02:10

那么,有人知道我能做什么吗?

【问题讨论】:

  • 不要为SimpleDateFormat设置时区。

标签: android date datetime timestamp


【解决方案1】:

根据您的描述,我假设输入字符串为 UTC。如果该假设正确,我建议您在格式化程序中设置“UTC”。尝试关注

public static Long dateToTimestamp(String dateFormat) {
    SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm");
    formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
    Log.e("AQM", TimeZone.getDefault().getDisplayName());
    try {
        Date date = formatter.parse(dateFormat);
        Log.e("AQM", date.toString());
        return date.getTime() / 1000;
    } catch (ParseException e) {
        return Long.parseLong("0");
    }
}

【讨论】:

  • 输入日期不是UTC,是当地时间
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-24
  • 2011-12-26
  • 1970-01-01
  • 2016-06-02
相关资源
最近更新 更多