首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Kotlin日期的字符串或时间戳格式设置为我喜欢的格式?

如何将Kotlin日期的字符串或时间戳格式设置为我喜欢的格式?
EN

Stack Overflow用户
提问于 2019-08-07 20:41:45
回答 5查看 62.9K关注 0票数 17

我从天气API获得两个版本的日期数据。第一个字符串是这样的:2019-08-07 :09:00,如下所示:1565209665。如何将其更改为一天或一天或一个月的名称?例如,星期一,八月。

我在几个配置中尝试过这样的方法,但它只在完整版本中工作。如果我猫什么东西,它就会抛出一个错误:

代码语言:javascript
复制
    var date = list.get(position).dt_txt
    val formatter = DateTimeFormatterBuilder()
        .appendPattern("yyyy-MM-dd HH:mm:ss").toFormatter()
    formatter.parse(date)
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2019-08-07 23:14:12

第一API格式:

代码语言:javascript
复制
val firstApiFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
val date = LocalDate.parse("2019-08-07 09:00:00" , firstApiFormat)

Log.d("parseTesting", date.dayOfWeek.toString()) // prints Wednesday
Log.d("parseTesting", date.month.toString()) // prints August

第二个API格式:

代码语言:javascript
复制
val secondApiFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'")
val timestamp = 1565209665.toLong() // timestamp in Long


val timestampAsDateString = java.time.format.DateTimeFormatter.ISO_INSTANT
            .format(java.time.Instant.ofEpochSecond(timestamp))

Log.d("parseTesting", timestampAsDateString) // prints 2019-08-07T20:27:45Z


val date = LocalDate.parse(timestampAsDateString, secondApiFormat)

Log.d("parseTesting", date.dayOfWeek.toString()) // prints Wednesday
Log.d("parseTesting", date.month.toString()) // prints August
票数 18
EN

Stack Overflow用户

发布于 2020-10-22 08:38:53

这真的很简单

代码语言:javascript
复制
val dateFormated = SimpleDateFormat("dd/MM/yyyy").format(trans.created_date.toDate())

我希望这对每个人都有用,多亏了https://www.datetimeformatter.com/how-to-format-date-time-in-kotlin/

票数 11
EN

Stack Overflow用户

发布于 2019-08-08 04:39:56

尝试使用以下代码获取dayOfWeek和月份名称

到字符串日期

方法

代码语言:javascript
复制
fun getAbbreviatedFromDateTime(dateTime: String, dateFormat: String, field: String): String? {
    val input = SimpleDateFormat(dateFormat)
    val output = SimpleDateFormat(field)
    try {
        val getAbbreviate = input.parse(dateTime)    // parse input
        return output.format(getAbbreviate)    // format output
    } catch (e: ParseException) {
        e.printStackTrace()
    }

    return null
}

*如何使用

代码语言:javascript
复制
val monthName=getAbbreviatedFromDateTime("2019-08-07 09:00:00","yyyy-MM-dd HH:mm:ss","MMMM")
    println("monthName--"+monthName)

    val dayOfWeek=getAbbreviatedFromDateTime("2019-08-07 09:00:00","yyyy-MM-dd HH:mm:ss","EEEE")
    println("dayOfWeek--"+dayOfWeek)

To Timemillis

方法

代码语言:javascript
复制
 fun convertStringToCalendar( timeMillis: Long) {
    //get calendar instance
    val calendarDate = Calendar.getInstance()
    calendarDate.timeInMillis = timeMillis
    val month=getAbbreviatedFromDateTime(calendarDate,"MMMM");
    val day=getAbbreviatedFromDateTime(calendarDate,"EEEE");
    Log.d("parseTesting", month)// prints August
    Log.d("parseTesting",day)// prints Wednesday
}


fun getAbbreviatedFromDateTime(dateTime: Calendar, field: String): String? {
    val output = SimpleDateFormat(field)
    try {
        return output.format(dateTime.time)    // format output
    } catch (e: Exception) {
        e.printStackTrace()
    }

    return null
}

使用

代码语言:javascript
复制
 val timestamp = "1565209665".toLong()

    convertStringToCalendar(timestamp)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57402045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档