使用当天的开始时间获取日期
Getting Date with Start time of the Day
我正在使用以下函数获取今天的日期:
fun getCurrentDateTime(dateFormat: String): String {
val Datetime: String
val c = Calendar.getInstance()
val dateformat = SimpleDateFormat(dateFormat, Locale.getDefault())
Datetime = dateformat.format(c.time)
return Datetime
}
我有 今天 的过滤器来排序获取今天过滤的数据。但是,通过上述功能,我使用相同的值进行过滤,
表示今天的开始日期和今天的结束日期都相同。
我想要不同的。
方法 :
开始日期应为 1639560609(2021 年 12 月 15 日,星期三 00:00:00 GMT+05:30)
和
结束日期应该是当前时间(我用上面的函数得到的)
所以,你得到的问题是我想要今天的开始日期和当天的开始时间。
怎么样?谢谢
使用LocalDateTime
获取当前日期和一天的开始
val dateFormatter = DateTimeFormatter.ofPattern("EEEE, d MMMM yyyy HH:mm:ss")
val localDate = LocalDate.now() // your current date time
val startOfDay: LocalDateTime = localDate.atStartOfDay() // date time at start of the date
val timestamp = startOfDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() // start time to timestamp
Log.d("Date:", "start date $timestamp")
Log.d("Date:", "start date parsed ${startOfDay.format(dateFormatter)}")
输出:
开始日期时间戳:1639506600000
已解析的时间戳:2021 年 12 月 15 日,星期三 00:00:00
编辑:获取日期结束时间
val endOfDate: LocalDateTime = localDate.atTime(LocalTime.MAX)
val timestampEnd = endOfDate.atZone(ZoneId.of("UTC")).toInstant().epochSecond
捕捉当下。
Instant now = Instant.now() ;
请注意,对于任何给定时刻,日期在全球范围内因时区而异。某一时刻,在日本东京可能是“明天”,而在加拿大艾伯塔省埃德蒙顿可能是“昨天”。
特定时区
获取特定时区当时的生效日期。这里我们使用印度时区。
ZoneId zKolkata = ZoneId.of( "Asia/Kolkata" ) ;
LocalDate todayKolkata = now.atZone( zKolkata ).toLocalDate() ;
获取该区域日期的第一时刻。
ZonedDateTime startOfTodayKolkata = todayKolkata.atStartOfDay( zKolkata ) ;
获取从 1970 UTC 的第一时刻到加尔各答该日期的第一时刻的整秒计数。
long secondsSinceEpochToStartOfTodayKolkata = startOfTodayKolkata.toInstant().getEpochSecond() ;
如果您想跟踪一天的完整长度,请使用半开方法。在 Half-Open 中,开始是包容性的,而结局是排他性的。因此,一整天从一个日期的第一时刻开始,一直到但不包括 下 天的开始。
ZonedDateTime startOfTomorrowKolkata = todayKolkata.plusDays( 1 ).atStartOfDay( z ) ;
使用 ThreeTen-Extra 库中的 Interval
class 将一整天作为一对 Instant
对象进行跟踪。
Interval allDayTodayKolkata = Interval.between( startOfTodayKolkata , startOfTomorrowKolkata ) ;
UTC(零偏移量)
相比之下,确定今天日期的第一个时刻,偏移量为零小时-分钟-秒。
LocalDate todayUtc = now.atOffset( ZoneOffset.UTC ).toLocalDate() ;
ZonedDateTime startOfDayUtc = todayUtc.atStartOfDay( ZoneOffset.UTC ) ;
long secondsSinceEpochToStartOfDayUtc = startOfDayUtc.toInstant().getEpochSecond() ;
我正在使用以下函数获取今天的日期:
fun getCurrentDateTime(dateFormat: String): String {
val Datetime: String
val c = Calendar.getInstance()
val dateformat = SimpleDateFormat(dateFormat, Locale.getDefault())
Datetime = dateformat.format(c.time)
return Datetime
}
我有 今天 的过滤器来排序获取今天过滤的数据。但是,通过上述功能,我使用相同的值进行过滤, 表示今天的开始日期和今天的结束日期都相同。
我想要不同的。 方法 : 开始日期应为 1639560609(2021 年 12 月 15 日,星期三 00:00:00 GMT+05:30) 和 结束日期应该是当前时间(我用上面的函数得到的)
所以,你得到的问题是我想要今天的开始日期和当天的开始时间。
怎么样?谢谢
使用LocalDateTime
获取当前日期和一天的开始
val dateFormatter = DateTimeFormatter.ofPattern("EEEE, d MMMM yyyy HH:mm:ss")
val localDate = LocalDate.now() // your current date time
val startOfDay: LocalDateTime = localDate.atStartOfDay() // date time at start of the date
val timestamp = startOfDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() // start time to timestamp
Log.d("Date:", "start date $timestamp")
Log.d("Date:", "start date parsed ${startOfDay.format(dateFormatter)}")
输出:
开始日期时间戳:1639506600000
已解析的时间戳:2021 年 12 月 15 日,星期三 00:00:00
编辑:获取日期结束时间
val endOfDate: LocalDateTime = localDate.atTime(LocalTime.MAX)
val timestampEnd = endOfDate.atZone(ZoneId.of("UTC")).toInstant().epochSecond
捕捉当下。
Instant now = Instant.now() ;
请注意,对于任何给定时刻,日期在全球范围内因时区而异。某一时刻,在日本东京可能是“明天”,而在加拿大艾伯塔省埃德蒙顿可能是“昨天”。
特定时区
获取特定时区当时的生效日期。这里我们使用印度时区。
ZoneId zKolkata = ZoneId.of( "Asia/Kolkata" ) ;
LocalDate todayKolkata = now.atZone( zKolkata ).toLocalDate() ;
获取该区域日期的第一时刻。
ZonedDateTime startOfTodayKolkata = todayKolkata.atStartOfDay( zKolkata ) ;
获取从 1970 UTC 的第一时刻到加尔各答该日期的第一时刻的整秒计数。
long secondsSinceEpochToStartOfTodayKolkata = startOfTodayKolkata.toInstant().getEpochSecond() ;
如果您想跟踪一天的完整长度,请使用半开方法。在 Half-Open 中,开始是包容性的,而结局是排他性的。因此,一整天从一个日期的第一时刻开始,一直到但不包括 下 天的开始。
ZonedDateTime startOfTomorrowKolkata = todayKolkata.plusDays( 1 ).atStartOfDay( z ) ;
使用 ThreeTen-Extra 库中的 Interval
class 将一整天作为一对 Instant
对象进行跟踪。
Interval allDayTodayKolkata = Interval.between( startOfTodayKolkata , startOfTomorrowKolkata ) ;
UTC(零偏移量)
相比之下,确定今天日期的第一个时刻,偏移量为零小时-分钟-秒。
LocalDate todayUtc = now.atOffset( ZoneOffset.UTC ).toLocalDate() ;
ZonedDateTime startOfDayUtc = todayUtc.atStartOfDay( ZoneOffset.UTC ) ;
long secondsSinceEpochToStartOfDayUtc = startOfDayUtc.toInstant().getEpochSecond() ;