下面列出了 io.netty.handler.codec.DateFormatter # format ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Test
public void testDecodingSingleCookieV0() {
String cookieString = "myCookie=myValue;expires="
+ DateFormatter.format(new Date(System.currentTimeMillis() + 50000))
+ ";path=/apathsomewhere;domain=.adomainsomewhere;secure;";
Cookie cookie = ClientCookieDecoder.STRICT.decode(cookieString);
assertNotNull(cookie);
assertEquals("myValue", cookie.value());
assertEquals(".adomainsomewhere", cookie.domain());
assertNotEquals("maxAge should be defined when parsing cookie " + cookieString,
Long.MIN_VALUE, cookie.maxAge());
assertTrue("maxAge should be about 50ms when parsing cookie " + cookieString,
cookie.maxAge() >= 40 && cookie.maxAge() <= 60);
assertEquals("/apathsomewhere", cookie.path());
assertTrue(cookie.isSecure());
}
@Test
void testDecodingSingleCookieV0() {
final String cookieString = "myCookie=myValue;expires=" +
DateFormatter.format(new Date(System.currentTimeMillis() + 50000)) +
";path=/apathsomewhere;domain=.adomainsomewhere;secure;";
final Cookie cookie = Cookie.fromSetCookieHeader(cookieString);
assertThat(cookie).isNotNull();
assertThat(cookie.value()).isEqualTo("myValue");
assertThat(cookie.domain()).isEqualTo(".adomainsomewhere");
assertThat(cookie.maxAge()).withFailMessage("maxAge should be defined when parsing cookie: " +
cookieString)
.isNotEqualTo(Cookie.UNDEFINED_MAX_AGE);
assertThat(cookie.maxAge()).withFailMessage("maxAge should be about 50ms when parsing cookie: " +
cookieString)
.isGreaterThanOrEqualTo(40)
.isLessThanOrEqualTo(60);
assertThat(cookie.path()).isEqualTo("/apathsomewhere");
assertThat(cookie.isSecure()).isTrue();
}
@Override
public CharSequence convertObject(Object value) {
if (value instanceof CharSequence) {
return (CharSequence) value;
}
if (value instanceof Date) {
return DateFormatter.format((Date) value);
}
if (value instanceof Calendar) {
return DateFormatter.format(((Calendar) value).getTime());
}
return value.toString();
}
@Nullable
@Override
@SuppressWarnings("UseOfObsoleteDateTimeApi")
public String convertObject(@Nullable Object value) {
if (value == null) {
return null;
}
// Try the types that appears more often first.
if (value instanceof CharSequence ||
value instanceof Number ||
value instanceof MediaType) {
return value.toString();
}
if (value instanceof Instant) {
return DateFormatter.format(new Date(((Instant) value).toEpochMilli()));
}
if (value instanceof TemporalAccessor) {
return DateFormatter.format(new Date(Instant.from((TemporalAccessor) value).toEpochMilli()));
}
if (value instanceof CacheControl) {
return ((CacheControl) value).asHeaderValue();
}
// Obsolete types.
if (value instanceof Date) {
return DateFormatter.format((Date) value);
}
if (value instanceof Calendar) {
return DateFormatter.format(((Calendar) value).getTime());
}
return value.toString();
}
@Override
public String convertTimeMillis(long value) {
return DateFormatter.format(new Date(value));
}