質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Realm

RealmとはSQLiteやCore Dataに代わるモバイルデータベースです。iOSとAndroidの両方でサポートされています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

解決済

2回答

6128閲覧

StringからDate型に変換できない

asdfhorse

総合スコア17

Realm

RealmとはSQLiteやCore Dataに代わるモバイルデータベースです。iOSとAndroidの両方でサポートされています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

0クリップ

投稿2018/12/18 03:12

編集2018/12/18 06:05

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}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

SimpleDateFormatのフォーマットで小文字のmmは分を意味します。月として解釈させたければ、

kotlin

1 private val sdf = SimpleDateFormat("yyyy/MM/dd", Locale.JAPAN)

のようにする必要があるでしょう。

クラスSimpleDateFormat

投稿2018/12/18 03:34

編集2018/12/18 03:35
keicha_hrs

総合スコア6768

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

Kotlin

1 private val sdf = SimpleDateFormat("yyyy/mm/dd", Locale.JAPAN) 2

Kotlin

1 private val sdf = SimpleDateFormat("yyyy/MM/dd", Locale.JAPAN) 2

に修正してください.
mm は分を表しています. 月は MMです.

表示したいフォーマットが sdf と同じであれば,
Toastのコードの部分を

Kotlin

1Toast.makeText(this, "値:" + sdf.format(kdaten).toString(), 2 Toast.LENGTH_LONG).show()

にしてください.
kdaten.toString()では DatetoString が呼び出されているため,
画像のような表示になってしまします.

Dateのフォーマットについてはドキュメントを参照してください.
SimpleDateFormat

投稿2018/12/18 03:37

Livenga

総合スコア85

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

asdfhorse

2018/12/18 04:57 編集

String型からDate型に変換できたか確認したいのですが、TextViewやToastで表示させて確認しようと思ったのですが、toStringを呼び出さなくてはいけないため確認が出来ません。Date型そのままを表示し、確認する方法はありますでしょうか?
Livenga

2018/12/18 05:13

変換ができなければ例外が発生するため, 正常に変換できています. ただし, こちらが求めている値である保証はありませんが. 確認する方法ですが, Calendar クラスなどを用いて正確な Date を生成し比較させるなどの方法があります. 要するにこちらが想定する値を生成し比較させるということです. Toastで表示した Date.toString() の意味がわからなければ調べましょう. https://docs.oracle.com/javase/jp/8/docs/api/java/util/Date.html あと Java のタグを追加した方がよろしいのではないでしょうか.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問