如何在没有SimpleDateFormat的情况下获得UTC时间?

马蒂亚斯

我目前正在处理从UTC转换为UTC的时间戳。我发现的所有文章都是基于String的转换。像这个:

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
Date myDate = simpleDateFormat.parse(rawQuestion.getString("AskDateTime"));

但是我想知道是否有一种方法可以简单地与Date实例/类或日历一起使用,以将本地Date转换为UTC,反之亦然,而又不将其转换为String。

马蒂亚斯

到目前为止,我找不到完美的解决方案,因此我不得不坚持从Date到String的转换,反之亦然。这是我写的一个小助手类。

public class DateTimeHelper {

    public static final String MYSQL_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
    private static final TimeZone timeZoneUTC = TimeZone.getTimeZone("UTC");

    private Date date = new Date();
    private final SimpleDateFormat format;

    public DateTimeHelper(String dateTimeFormat) {
        format = new SimpleDateFormat(dateTimeFormat, Locale.US);
    }

    public DateTimeHelper(String dateTimeFormat, String utcTimeString) {
        this(dateTimeFormat);

        try {
            format.setTimeZone(timeZoneUTC);
            Date utc = format.parse(utcTimeString);
            format.setTimeZone(TimeZone.getDefault());
            String local = format.format(utc);
            date = format.parse(local);
        } catch (ParseException e) {
            // nothing
        }
    }

    public Date getDate() {
        return date;
    }

    public Date toUtc() {

        String temp = toString();
        format.setTimeZone(timeZoneUTC);
        try {
            return format.parse(temp);
        } catch (ParseException e) {
            return date;
        }
    }

    @Override
    public String toString() {
        format.setTimeZone(TimeZone.getDefault());
        return format.format(date);
    }

    public String toUtcString() {
        format.setTimeZone(timeZoneUTC);
        return format.format(date);
    }
}

还有一个更容易使用的:

public class MySqlDateTimeHelper extends DateTimeHelper {

    public MySqlDateTimeHelper() {
        super(DateTimeHelper.MYSQL_DATE_TIME_FORMAT);
    }

    public MySqlDateTimeHelper(String utcTimeString) {
        super(DateTimeHelper.MYSQL_DATE_TIME_FORMAT, utcTimeString);
    }

    public static String getCurrentTimestampUtc() {
        MySqlDateTimeHelper current = new MySqlDateTimeHelper();
        return current.toUtcString();
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在没有ParseException的情况下使用SimpleDateFormat测试解析日期

来自分类Dev

GMAIL API:如何在没有原始消息的情况下获得答复

来自分类Dev

如何在没有WMI的情况下使用PowerShell获得总物理内存大小?

来自分类Dev

如何在没有注册的情况下获得客户的唯一ID?(例如,Jodel应用)

来自分类Dev

如何在R中没有列名称的情况下获得矩阵元素?

来自分类Dev

如何在Vim中没有光标跳转的情况下获得匹配的括号突出显示

来自分类Dev

如何在Vim中没有光标跳转的情况下获得匹配的括号突出显示

来自分类Dev

如何在没有用户的情况下获得访问权限

来自分类Dev

如何在没有双引号的情况下获得ansible输出

来自分类Dev

如何在没有编译器的情况下获得简单的Makefile教程

来自分类Dev

XRDP:如何在没有本地用户登录的情况下获得远程终端服务?

来自分类Dev

如何在没有订购对象或产品的情况下获得Magento的增值税率

来自分类Dev

rpm少了些什么,如何在没有rpm的情况下获得文本

来自分类Dev

如何在没有AddonManger的情况下获得自己的名称和版本?

来自分类Dev

GMAIL API:如何在没有原始消息的情况下获得答复

来自分类Dev

如何在没有查询的情况下获得最受欢迎的推文?

来自分类Dev

如何在没有不同的情况下获得唯一计数

来自分类Dev

如何在没有方括号的情况下获得值

来自分类Dev

如何在spark RDD中没有combineByKey和aggregateByKey的情况下获得指定的输出

来自分类Dev

如何在没有 iframe 的情况下获得全屏 div?

来自分类Dev

如何在没有Ruby测试库的情况下模拟时间?

来自分类Dev

如何在没有到期时间的情况下使JWT令牌无效

来自分类Dev

如何在没有“ root”进程的情况下通过顶部显示进程的CPU时间

来自分类Dev

如何在没有时间的情况下获取ReferenceTime

来自分类Dev

平滑滚动到元素时如何在没有jquery的情况下控制滚动时间?

来自分类Dev

如何在没有 AM/PM 缩写的情况下使用 toLocaleTimeString 12 小时时间?

来自分类Dev

如何在没有聚合的情况下透视时间序列表

来自分类Dev

如何在没有Maven的情况下使用Gradle

来自分类Dev

如何在没有sudo的情况下执行'iftop'

Related 相关文章

  1. 1

    如何在没有ParseException的情况下使用SimpleDateFormat测试解析日期

  2. 2

    GMAIL API:如何在没有原始消息的情况下获得答复

  3. 3

    如何在没有WMI的情况下使用PowerShell获得总物理内存大小?

  4. 4

    如何在没有注册的情况下获得客户的唯一ID?(例如,Jodel应用)

  5. 5

    如何在R中没有列名称的情况下获得矩阵元素?

  6. 6

    如何在Vim中没有光标跳转的情况下获得匹配的括号突出显示

  7. 7

    如何在Vim中没有光标跳转的情况下获得匹配的括号突出显示

  8. 8

    如何在没有用户的情况下获得访问权限

  9. 9

    如何在没有双引号的情况下获得ansible输出

  10. 10

    如何在没有编译器的情况下获得简单的Makefile教程

  11. 11

    XRDP:如何在没有本地用户登录的情况下获得远程终端服务?

  12. 12

    如何在没有订购对象或产品的情况下获得Magento的增值税率

  13. 13

    rpm少了些什么,如何在没有rpm的情况下获得文本

  14. 14

    如何在没有AddonManger的情况下获得自己的名称和版本?

  15. 15

    GMAIL API:如何在没有原始消息的情况下获得答复

  16. 16

    如何在没有查询的情况下获得最受欢迎的推文?

  17. 17

    如何在没有不同的情况下获得唯一计数

  18. 18

    如何在没有方括号的情况下获得值

  19. 19

    如何在spark RDD中没有combineByKey和aggregateByKey的情况下获得指定的输出

  20. 20

    如何在没有 iframe 的情况下获得全屏 div?

  21. 21

    如何在没有Ruby测试库的情况下模拟时间?

  22. 22

    如何在没有到期时间的情况下使JWT令牌无效

  23. 23

    如何在没有“ root”进程的情况下通过顶部显示进程的CPU时间

  24. 24

    如何在没有时间的情况下获取ReferenceTime

  25. 25

    平滑滚动到元素时如何在没有jquery的情况下控制滚动时间?

  26. 26

    如何在没有 AM/PM 缩写的情况下使用 toLocaleTimeString 12 小时时间?

  27. 27

    如何在没有聚合的情况下透视时间序列表

  28. 28

    如何在没有Maven的情况下使用Gradle

  29. 29

    如何在没有sudo的情况下执行'iftop'

热门标签

归档