mirror of
https://github.com/SimpleMobileTools/Simple-Clock.git
synced 2025-06-05 22:19:17 +02:00
properly handle daylight savings
This commit is contained in:
@ -83,8 +83,13 @@ class TimeZonesAdapter(activity: SimpleActivity, var timeZones: ArrayList<MyTime
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun setupView(view: View, timeZone: MyTimeZone) {
|
private fun setupView(view: View, timeZone: MyTimeZone) {
|
||||||
val calendar = Calendar.getInstance(TimeZone.getTimeZone(timeZone.zoneName))
|
val currTimeZone = TimeZone.getTimeZone(timeZone.zoneName)
|
||||||
val offset = calendar.timeZone.rawOffset
|
val calendar = Calendar.getInstance(currTimeZone)
|
||||||
|
var offset = calendar.timeZone.rawOffset
|
||||||
|
val isDaylightSavingActive = currTimeZone.inDaylightTime(Date())
|
||||||
|
if (isDaylightSavingActive) {
|
||||||
|
offset += currTimeZone.dstSavings
|
||||||
|
}
|
||||||
val passedSeconds = ((calendar.timeInMillis + offset) / 1000).toInt()
|
val passedSeconds = ((calendar.timeInMillis + offset) / 1000).toInt()
|
||||||
val formattedTime = activity.getFormattedTime(passedSeconds, false, false)
|
val formattedTime = activity.getFormattedTime(passedSeconds, false, false)
|
||||||
val formattedDate = activity.getFormattedDate(calendar)
|
val formattedDate = activity.getFormattedDate(calendar)
|
||||||
|
@ -15,6 +15,7 @@ import com.simplemobiletools.clock.extensions.config
|
|||||||
import com.simplemobiletools.clock.extensions.getAllTimeZonesModified
|
import com.simplemobiletools.clock.extensions.getAllTimeZonesModified
|
||||||
import com.simplemobiletools.clock.extensions.getFormattedDate
|
import com.simplemobiletools.clock.extensions.getFormattedDate
|
||||||
import com.simplemobiletools.clock.extensions.getFormattedTime
|
import com.simplemobiletools.clock.extensions.getFormattedTime
|
||||||
|
import com.simplemobiletools.clock.helpers.getPassedSeconds
|
||||||
import com.simplemobiletools.clock.models.MyTimeZone
|
import com.simplemobiletools.clock.models.MyTimeZone
|
||||||
import com.simplemobiletools.commons.extensions.beVisibleIf
|
import com.simplemobiletools.commons.extensions.beVisibleIf
|
||||||
import com.simplemobiletools.commons.extensions.updateTextColors
|
import com.simplemobiletools.commons.extensions.updateTextColors
|
||||||
@ -62,8 +63,7 @@ class ClockFragment : Fragment() {
|
|||||||
|
|
||||||
private fun setupDateTime() {
|
private fun setupDateTime() {
|
||||||
calendar = Calendar.getInstance()
|
calendar = Calendar.getInstance()
|
||||||
val offset = calendar.timeZone.rawOffset
|
passedSeconds = getPassedSeconds()
|
||||||
passedSeconds = ((calendar.timeInMillis + offset) / 1000).toInt()
|
|
||||||
displayOtherTimeZones = context!!.config.displayOtherTimeZones
|
displayOtherTimeZones = context!!.config.displayOtherTimeZones
|
||||||
updateCurrentTime()
|
updateCurrentTime()
|
||||||
updateDate()
|
updateDate()
|
||||||
|
@ -48,7 +48,11 @@ fun getMSTillNextMinute(): Long {
|
|||||||
|
|
||||||
fun getPassedSeconds(): Int {
|
fun getPassedSeconds(): Int {
|
||||||
val calendar = Calendar.getInstance()
|
val calendar = Calendar.getInstance()
|
||||||
val offset = calendar.timeZone.rawOffset
|
val isDaylightSavingActive = TimeZone.getDefault().inDaylightTime(Date())
|
||||||
|
var offset = calendar.timeZone.rawOffset
|
||||||
|
if (isDaylightSavingActive) {
|
||||||
|
offset += TimeZone.getDefault().dstSavings
|
||||||
|
}
|
||||||
return ((calendar.timeInMillis + offset) / 1000).toInt()
|
return ((calendar.timeInMillis + offset) / 1000).toInt()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user