java - 如何使用 FastDateFormat 格式化 UTC 时间?

标签 java date simpledateformat apache-commons

这是一个简单的单元测试来说明我遇到的问题。

package mytest;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

import org.apache.commons.lang3.time.FastDateFormat;
import org.junit.Test;

import static org.junit.Assert.*;

public class DateTests {

    private static final String DATE_VALUE = "2016-03-11T15:47:02.123Z";
    private static final String PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSSZ";

    @Test
    public void utcTest() throws ParseException {

        SimpleDateFormat sdf = new SimpleDateFormat(PATTERN);
        sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
        Date date = sdf.parse(DATE_VALUE)

        FastDateFormat fdf = FastDateFormat.getInstance(PATTERN);
        assertEquals(DATE_VALUE, fdf.format(date));
    }
}

我的计算机使用中部时间,这意味着当我运行这段代码时,断言失败,因为 fdf 将日期格式设置为上午 9 点而不是下午 3 点。我如何告诉它以 UTC 格式设置内容?

最佳答案

尝试这样做:

FastDateFormat fdf = FastDateFormat.getInstance(PATTERN, TimeZone.getTimeZone("UTC"));

关于java - 如何使用 FastDateFormat 格式化 UTC 时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35947894/

相关文章:

java - 如何找出 JVM 对我的代码应用了哪些优化?

java - 在循环中设置多个不同 JButton 的属性

php - MYSQL DB 时间戳不保存记录。而是以日期时间格式保存

java - MMM 格式的 SimpleDateFormat 打印 "."

java - SimpleDateFormat 导致时间不正确

java - 在 Java 中创建枚举/最终类

java - 增加 Java 堆大小的速度

javascript - 在 nvD3 图中使用时间作为坐标

date - 如何使用golang打印两个日期之间的特定日期?

java - 无法在 Android 中使用 SimpleDateFormat 解析 MYSQL 时间戳