如何使该单元测试在所有时区都通过测试,而与DST是否处于活动状态无关?
import static org.junit.Assert.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.joda.time.DateTime;
import org.junit.Test;
public class TimeZoneTest {
private final static SimpleDateFormat DATE_FORMAT = new SimpleDateFormat( "yyyy.MM.dd'T'HH:mm.ss:SSSZZ" );
@Test
public void testUtilDateMillis() throws Exception {
assertEquals( "1970.01.01T00:00.00:000+0000", DATE_FORMAT.format( new Date( 0L ) ) );
}
@Test
public void testDateTimeMillis() throws Exception {
assertEquals( "1970-01-01T00:00:00.000+00:00", new DateTime( 0L ).toString() );
}
}
默认情况下,新用户SimpleDateFormat
将使用系统默认时区。如果您想要一个特定的时区,请致电setTimeZone
:
private final static SimpleDateFormat DATE_FORMAT = createFormat();
private static SimpleDateFormat createFormat() {
// Make sure there are no locale-specific nasties, either...
SimpleDateFormat ret = new SimpleDateFormat("yyyy.MM.dd'T'HH:mm.ss:SSSZZ",
Locale.US);
ret.setTimeZone(TimeZone.getTimeZone("Etc/UTC");
}
对于第二项测试,您想要将其更改为:
new DateTime(0L, DateTimeZone.UTC);
请注意,通常不应该使用静态SimpleDateFormat
变量,因为它不是线程安全的。(而Joda Time DateTimeFormatter
实现 是 线程安全的。)
问题内容: 我有一个返回例如DateTime对象的Web服务:DepartureDate。我使用ajax来获取此代码,并在我看来使用此功能将JSON日期字符串转换为javascript日期对象: 问题是要考虑到客户端计算机上的本地时间,因此不同国家/地区的客户端会获得不同的日期。我想获取从Web服务返回的确切日期。有没有简单的方法可以做到这一点? 问题答案: 问题是考虑了客户端计算机上的本地时间
问题内容: 我有一条指令,该指令的行为应有所不同,具体取决于自初始化以来经过的时间: 问题是,当我尝试使用Jasmine进行测试时,我似乎找不到以任何方式触发此超时的方法。已经尝试了和(如果我要注释调用,实际上会引发错误)。但是它仍然没有触发超时的回调执行 测试失败。 找不到我在做什么错。关于如何正确测试这种情况的任何提示? 谢谢。 UPD 经过一番调查,我发现在此特定的测试用例中,在功能上,服务
我想在JavaScript中解析没有时区的日期。我试过:
我使用的是<code>java.sql。Date将日期字段存储在我的一个域对象中。此字段映射到MySQL<code>DATE</code>列。当我试图通过Jackson将该字段序列化为JSON时,Jackson似乎没有考虑夏时制。 下面是我的域对象中的字段: 如您所见,杰克逊已被指示将时区解释为EST。我的MySQL数据库也使用EST时区: 我的问题是,对于夏令时开始和结束之间的日期,Jackso
问题内容: 我想知道用Java最简单的方法来获取将来的夏令时将改变的日期列表。 一种相当灵活的方法是简单地迭代一整年的时间,然后对它们进行TimeZone.inDaylightTime()测试。这将起作用,并且我不担心效率,因为这仅在我的应用每次启动时都需要运行,但是我想知道是否有更简单的方法。 如果您想知道为什么要这样做,那是因为我有一个javascript应用程序,该应用程序需要处理包含UTC
问题内容: 当日期中包含EDT / EST时,我们是否有任何API可以验证日期是否有效。我已经尝试过用Java Java SimpleDateFormat进行Joda,但是我无法解析日期。 下面是我正在获取“ 2017/09/25 16:18:15.099 -0400 EDT”的示例格式。 任何帮助表示赞赏。 谢谢,sk 问题答案: 您是否尝试阅读文档? 从以下文档中: 区域名称 :这将输出时区I