@@ -26,6 +26,11 @@ import org.apache.spark.unsafe.types.UTF8String
2626
2727class DateTimeUtilsSuite extends SparkFunSuite {
2828
29+ private [this ] def getInUTCDays (timestamp : Long ): Int = {
30+ val tz = TimeZone .getDefault
31+ ((timestamp + tz.getOffset(timestamp)) / DateTimeUtils .MILLIS_PER_DAY ).toInt
32+ }
33+
2934 test(" timestamp and us" ) {
3035 val now = new Timestamp (System .currentTimeMillis())
3136 now.setNanos(1000 )
@@ -276,28 +281,6 @@ class DateTimeUtilsSuite extends SparkFunSuite {
276281 assert(DateTimeUtils .stringToTimestamp(
277282 UTF8String .fromString(" 2011-05-06 07:08:09.1000" )).get === c.getTimeInMillis * 1000 )
278283
279- val defaultTimeZone = TimeZone .getDefault
280- TimeZone .setDefault(TimeZone .getTimeZone(" America/Los_Angeles" ))
281-
282- c = Calendar .getInstance()
283- c.set(2015 , 2 , 8 , 2 , 0 , 0 )
284- c.set(Calendar .MILLISECOND , 0 )
285- assert(DateTimeUtils .stringToTimestamp(
286- UTF8String .fromString(" 2015-3-8 2:0:0" )).get === c.getTimeInMillis * 1000 )
287- c.add(Calendar .MINUTE , 30 )
288- assert(DateTimeUtils .stringToTimestamp(
289- UTF8String .fromString(" 2015-3-8 3:30:0" )).get === c.getTimeInMillis * 1000 )
290- assert(DateTimeUtils .stringToTimestamp(
291- UTF8String .fromString(" 2015-3-8 2:30:0" )).get === c.getTimeInMillis * 1000 )
292-
293- c = Calendar .getInstance()
294- c.set(2015 , 10 , 1 , 1 , 59 , 0 )
295- c.set(Calendar .MILLISECOND , 0 )
296- c.add(Calendar .MINUTE , 31 )
297- assert(DateTimeUtils .stringToTimestamp(
298- UTF8String .fromString(" 2015-11-1 2:30:0" )).get === c.getTimeInMillis * 1000 )
299- TimeZone .setDefault(defaultTimeZone)
300-
301284 assert(DateTimeUtils .stringToTimestamp(UTF8String .fromString(" 238" )).isEmpty)
302285 assert(DateTimeUtils .stringToTimestamp(UTF8String .fromString(" 2015-03-18 123142" )).isEmpty)
303286 assert(DateTimeUtils .stringToTimestamp(UTF8String .fromString(" 2015-03-18T123123" )).isEmpty)
@@ -340,51 +323,41 @@ class DateTimeUtilsSuite extends SparkFunSuite {
340323
341324 test(" get day in year" ) {
342325 val c = Calendar .getInstance()
343- c.set(2015 , 2 , 18 )
344- assert(DateTimeUtils .getDayInYear((c.getTimeInMillis / DateTimeUtils .MILLIS_PER_DAY ).toInt) ===
345- 77 )
346- c.set(2012 , 2 , 18 )
347- assert(DateTimeUtils .getDayInYear((c.getTimeInMillis / DateTimeUtils .MILLIS_PER_DAY ).toInt) ===
348- 78 )
326+ c.set(2015 , 2 , 18 , 0 , 0 , 0 )
327+ assert(DateTimeUtils .getDayInYear(getInUTCDays(c.getTimeInMillis)) === 77 )
328+ c.set(2012 , 2 , 18 , 0 , 0 , 0 )
329+ assert(DateTimeUtils .getDayInYear(getInUTCDays(c.getTimeInMillis)) === 78 )
349330 }
350331
351332 test(" get year" ) {
352333 val c = Calendar .getInstance()
353- c.set(2015 , 2 , 18 )
354- assert(DateTimeUtils .getYear((c.getTimeInMillis / DateTimeUtils .MILLIS_PER_DAY ).toInt) ===
355- 2015 )
356- c.set(2012 , 2 , 18 )
357- assert(DateTimeUtils .getYear((c.getTimeInMillis / DateTimeUtils .MILLIS_PER_DAY ).toInt) ===
358- 2012 )
334+ c.set(2015 , 2 , 18 , 0 , 0 , 0 )
335+ assert(DateTimeUtils .getYear(getInUTCDays(c.getTimeInMillis)) === 2015 )
336+ c.set(2012 , 2 , 18 , 0 , 0 , 0 )
337+ assert(DateTimeUtils .getYear(getInUTCDays(c.getTimeInMillis)) === 2012 )
359338 }
360339
361340 test(" get quarter" ) {
362341 val c = Calendar .getInstance()
363- c.set(2015 , 2 , 18 )
364- assert(DateTimeUtils .getQuarter((c.getTimeInMillis / DateTimeUtils .MILLIS_PER_DAY ).toInt) ===
365- 1 )
366- c.set(2012 , 11 , 18 )
367- assert(DateTimeUtils .getQuarter((c.getTimeInMillis / DateTimeUtils .MILLIS_PER_DAY ).toInt) ===
368- 4 )
342+ c.set(2015 , 2 , 18 , 0 , 0 , 0 )
343+ assert(DateTimeUtils .getQuarter(getInUTCDays(c.getTimeInMillis)) === 1 )
344+ c.set(2012 , 11 , 18 , 0 , 0 , 0 )
345+ assert(DateTimeUtils .getQuarter(getInUTCDays(c.getTimeInMillis)) === 4 )
369346 }
370347
371348 test(" get month" ) {
372349 val c = Calendar .getInstance()
373- c.set(2015 , 2 , 18 )
374- assert(DateTimeUtils .getMonth((c.getTimeInMillis / DateTimeUtils .MILLIS_PER_DAY ).toInt) ===
375- 3 )
376- c.set(2012 , 11 , 18 )
377- assert(DateTimeUtils .getMonth((c.getTimeInMillis / DateTimeUtils .MILLIS_PER_DAY ).toInt) ===
378- 12 )
350+ c.set(2015 , 2 , 18 , 0 , 0 , 0 )
351+ assert(DateTimeUtils .getMonth(getInUTCDays(c.getTimeInMillis)) === 3 )
352+ c.set(2012 , 11 , 18 , 0 , 0 , 0 )
353+ assert(DateTimeUtils .getMonth(getInUTCDays(c.getTimeInMillis)) === 12 )
379354 }
380355
381356 test(" get day of month" ) {
382357 val c = Calendar .getInstance()
383- c.set(2015 , 2 , 18 )
384- assert(DateTimeUtils .getDayOfMonth((c.getTimeInMillis / DateTimeUtils .MILLIS_PER_DAY ).toInt) ===
385- 18 )
386- c.set(2012 , 11 , 24 )
387- assert(DateTimeUtils .getDayOfMonth((c.getTimeInMillis / DateTimeUtils .MILLIS_PER_DAY ).toInt) ===
388- 24 )
358+ c.set(2015 , 2 , 18 , 0 , 0 , 0 )
359+ assert(DateTimeUtils .getDayOfMonth(getInUTCDays(c.getTimeInMillis)) === 18 )
360+ c.set(2012 , 11 , 24 , 0 , 0 , 0 )
361+ assert(DateTimeUtils .getDayOfMonth(getInUTCDays(c.getTimeInMillis)) === 24 )
389362 }
390363}
0 commit comments