在這種情況下,我的輸入是2012-09-28,但我收到了
01/01/2011
我想收到09/28/2012
main(){
val scan = Scanner(System.`in`)
val originalFormat: DateFormat = SimpleDateFormat("YYY-MM-DD", Locale.ENGLISH)
val targetFormat: DateFormat = SimpleDateFormat("MM/DD/YYYY")
val date = originalFormat.parse(scan.next() )
val formattedDate = targetFormat.format(date)
println(formattedDate)
}
我的代碼缺少什么?
uj5u.com熱心網友回復:
如果你想使用一個現代的API來決議和格式化日期和時間,請使用java.time,它是在Java 8中引入的。您可以匯入ThreeTenAbp或使用Android API Desugaring,以便使其在 26 以下的 Android API 版本中作業。
下面的例子使用了java.time,并考慮了你發布的兩種不同格式的輸入(一個在你的問題中,一個作為第一個答案的評論)。
import java.time.LocalDate
import java.time.format.DateTimeFormatter
import java.util.Scanner
fun main() {
val scan = Scanner(System.`in`)
//創建一個格式化器,決議兩種不同的預期輸入格式。
val inputFormatter = DateTimeFormatter.ofPattern("[uu-MM-dd][uuu-MM-dd]") 。
//決議輸入內容。
val localDate: LocalDate = LocalDate.parse(scan.next(), inputFormatter)
//定義一個具有所需輸出格式的formatter。
val targetFormat: DateTimeFormatter = DateTimeFormatter.ofPattern("MM/dd/uuuu"/span>)
//然后創建一個具有所需輸出格式的字串。
val formattedDate: String = localDate.format(targetFormat)
//span>并列印出來。
println(formattedDate)
}
輸入12-09-30或2012-09-30的結果都是09/30/2012。
uj5u.com熱心網友回復:
你可以試試這個方法嗎?
fun main() {
val scan = Scanner(System.`in`)
val originalFormat = SimpleDateFormat("yyyy-MM-dd"/span>, Locale.ENGLISH)
val targetFormat = SimpleDateFormat("MM/dd/yyyy")
val date = originalFormat.parse(scan.next() )
val formattedDate = targetFormat.format(date)
println(formattedDate)
}
d是該月的一天。(ex_10)
D是一年中的某一天。(ex_189)
y是年份。(ex_1996; 96)
Y是周歲。(ex_2009; 09)
uj5u.com熱心網友回復:
使用yyyy代替YYYY,使用dd代替DD。
DD是年的日期,而dd是月的日期。
YYYY是周歲,而yyyy是常規年份。
https://developer.android.com/reference/java/text/SimpleDateFormat?hl=en
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/311866.html
標籤:
