KotlinでString型からDate型にSimpleDateFormatを使って変換させようとしています。
String型の2018/12/18をDate型の2018/12/18に変換させたいです。
上手くフォーマットを使いこなせず、正しく変換することが出来ません。画像の値:以降のデータになってしまいます。
どなたかご教授お願いします。
kotlin
1 2class Kakeibo_AddActivity : FragmentActivity(), DatePick.Callback { 3 private lateinit var realm: Realm 4 5 private var kshushi = "" 6 private var kgenre = "" 7 8 private val sdf = SimpleDateFormat("yyyy/mm/dd", Locale.JAPAN) 9 10 11 override fun onCreate(savedInstanceState: Bundle?) { 12 13 super.onCreate(savedInstanceState) 14 setContentView(R.layout.testactivity) 15 16 val config = RealmConfiguration.Builder().deleteRealmIfMigrationNeeded().build() 17 18 Realm.setDefaultConfiguration(config) 19 20 realm = Realm.getDefaultInstance() 21 22 val dateEdit = findViewById<TextView>(R.id.date) 23 val moneyEdit = findViewById<EditText>(R.id.kmoney) 24 val insertBtn = findViewById<Button>(R.id.insertBtn) 25 26 or.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { 27 override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) { 28 val spinnerParent = parent as Spinner 29 kshushi = spinnerParent.selectedItem as String 30 } 31 32 override fun onNothingSelected(parent: AdapterView<*>?) { 33 } 34 } 35 genre.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { 36 override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) { 37 val spinnerParent = parent as Spinner 38 kgenre = spinnerParent.selectedItem as String 39 } 40 override fun onNothingSelected(parent: AdapterView<*>?) { 41 } 42 } 43 44 insertBtn.setOnClickListener { 45 46 // エディットテキストのテキストを取得 47 val kdateo = dateEdit.text.toString() 48 val kdaten = sdf.parse(kdateo) 49 val money = moneyEdit.text.toString() 50 val kmoney = Integer.parseInt(money) 51 52 realm.executeTransaction { 53 val maxShushiId = realm.where<Kakeibo>().max("shushiId") 54 val targetShushiId = (maxShushiId?.toLong() ?: 0L) + 1L 55 val kakeibo = realm.createObject<Kakeibo>(targetShushiId) 56 kakeibo.date = kdaten 57 kakeibo.shushi = kshushi 58 kakeibo.money = kmoney 59 kakeibo.genre = kgenre 60 Toast.makeText(this, "値:" + kdaten.toString(), 61 Toast.LENGTH_LONG).show() 62// Toast.makeText( 63// this, "追加しました ID:" + targetShushiId.toString(), 64// Toast.LENGTH_SHORT 65// ).show() 66 } 67 } 68 var listView: ListView 69 70 71 val kakeibo_navi: BottomNavigationItemView = findViewById(R.id.navigation_kakeibo) 72 val resito_navi: BottomNavigationItemView = findViewById(R.id.navigation_resito) 73 val buylist_navi: BottomNavigationItemView = findViewById(R.id.navigation_buylist) 74 val analysis_navi: BottomNavigationItemView = findViewById(R.id.navigation_analysis) 75 kakeibo_navi.setOnClickListener { 76 val intent = Intent(this, kakeiboActivity::class.java) 77 startActivity(intent) 78 } 79 buylist_navi.setOnClickListener { 80 val intent = Intent(this, buylistActivity::class.java) 81 startActivity(intent) 82 } 83 resito_navi.setOnClickListener { 84 val intent = Intent(this, resitoActivity::class.java) 85 86 startActivity(intent) 87 } 88 analysis_navi.setOnClickListener { 89 val intent = Intent(this, MainActivity::class.java) 90 startActivity(intent) 91 } 92 } 93 94 override fun onDatePicked(year: Int, monthOfYear: Int, dayOfMonth: Int) { 95 val str = String.format(Locale.US, "%d/%d/%d", year, monthOfYear + 1, dayOfMonth) 96 date.text = str 97 } 98 99 override fun onAttachFragment(fragment: Fragment) { 100 if (fragment is DatePick) { 101 fragment.callback = this 102 } 103 } 104 105 fun showDatePickerDialog(v: View) { 106 val newFragment = DatePick() 107 newFragment.show(supportFragmentManager, "datePicker") 108 } 109 110}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。