Added dateToGmt() function.

This commit is contained in:
Erik C. Thauvin 2019-09-19 12:24:15 -07:00
parent c7eb6518ac
commit 4b018f926a
2 changed files with 36 additions and 0 deletions

View file

@ -39,6 +39,10 @@ import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request
import okhttp3.logging.HttpLoggingInterceptor import okhttp3.logging.HttpLoggingInterceptor
import java.io.IOException import java.io.IOException
import java.time.LocalDateTime
import java.time.ZoneId
import java.time.ZoneOffset
import java.util.Date
import java.util.logging.Level import java.util.logging.Level
import java.util.logging.Logger import java.util.logging.Logger
import javax.servlet.http.HttpServletRequest import javax.servlet.http.HttpServletRequest
@ -423,6 +427,21 @@ open class Akismet(apiKey: String, blog: String) {
other = other)) other = other))
} }
/**
* Convert a [Date][java.util.Date] to a UTC timestamp (xxxGmt parameters).
*/
@JvmOverloads
fun dateToGmt(date: Date, zoneId: ZoneId = ZoneId.systemDefault()): String {
return dateToGmt(LocalDateTime.ofInstant(date.toInstant(), zoneId))
}
/**
* Convert a [LocalDateTime][java.time.LocalDateTime] to a UTC timestamp (xxxGmt parameters).
*/
fun dateToGmt(date: LocalDateTime): String {
return date.atZone(ZoneOffset.UTC)?.toEpochSecond().toString()
}
/** /**
* *
* Execute an Akismet REST API method. * Execute an Akismet REST API method.

View file

@ -33,6 +33,7 @@
package net.thauvin.erik.akismet package net.thauvin.erik.akismet
import org.mockito.Mockito import org.mockito.Mockito
import org.testng.Assert.assertEquals
import org.testng.Assert.assertFalse import org.testng.Assert.assertFalse
import org.testng.Assert.assertTrue import org.testng.Assert.assertTrue
import org.testng.Assert.expectThrows import org.testng.Assert.expectThrows
@ -40,7 +41,11 @@ import org.testng.annotations.BeforeClass
import org.testng.annotations.Test import org.testng.annotations.Test
import java.io.File import java.io.File
import java.io.FileInputStream import java.io.FileInputStream
import java.time.LocalDateTime
import java.time.ZoneId
import java.time.ZoneOffset
import java.util.Collections import java.util.Collections
import java.util.Date
import java.util.Properties import java.util.Properties
import java.util.logging.ConsoleHandler import java.util.logging.ConsoleHandler
import java.util.logging.Level import java.util.logging.Level
@ -152,5 +157,17 @@ class AkismetTest {
authorUrl = authorUrl, authorUrl = authorUrl,
content = content, content = content,
isTest = true), "check_comment(request) -> true") isTest = true), "check_comment(request) -> true")
@Test
fun dateToGmtTest() {
val date = Date()
val localDateTime = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault())
assertEquals(
akismet.dateToGmt(date),
akismet.dateToGmt(localDateTime),
"dateGmt(date) == dateGmt(localDateTime)")
assertEquals(
localDateTime.atOffset(ZoneOffset.UTC).toEpochSecond(),
akismet.dateToGmt(date).toLong(),
"localDateTime = dateGmt")
} }
} }