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

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

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

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

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

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

Q&A

解決済

2回答

2609閲覧

【Java】yyyy年mm月dd日→yyyy-mm-ddに変換したい

mouton

総合スコア2

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

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

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

0グッド

0クリップ

投稿2021/11/14 01:50

掲題の通りではありますが、yyyy年mm月dd日(String型)からyyyy-mm-dd(String型)に変換をしたいのですが、java.text.ParseExceptionが生じてしまい、解決ができず詰まってしまっているところです。
何方か解決方法をご存知の方がいらっしゃいましたら、ご教示頂けますと幸いです。

【該当のソース】

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //yyyy年mm月dd日をセッションによりjspから取得 String currenttime = (String) sesssion.getAttribute("display"); sdf.parse(currenttime);

【エラーメッセージ】

java.text.ParseException: Unparseable date: "2021年11月14日"

sdf.parse(currenttime);をsdf.format(currenttime);に変更して試してみたものの、今度はIllegalFormatConversionExceptionが発生してしまい、どちらにしてもダメでした。

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

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

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

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

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

guest

回答2

0

ベストアンサー

yyyy年mm月dd日(String型)からyyyy-mm-dd(String型)に変換をしたいのですが、...
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
sdf.parse(currenttime);

はなしがおかしいとおもいませんか。yyyy年mm月dd日"yyyy-MM-dd"parsse()しようとしていることが。

$ jshell jshell> import java.text.* jshell> var text = "2021年11月14日" text ==> "2021年11月14日" jshell> var sdf = new SimpleDateFormat("yyyy年MM月dd日") sdf ==> java.text.SimpleDateFormat@3d245831 jshell> sdf.parse(text) $11 ==> Sun Nov 14 00:00:00 JST 2021 jshell> sdf.format(sdf.parse(text)) $12 ==> "2021年11月14日" jshell> new SimpleDateFormat("yyyy-MM-dd").format(sdf.parse(text)) $13 ==> "2021-11-14"

投稿2021/11/14 02:58

編集2021/11/14 03:02
shiketa

総合スコア3971

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

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

mouton

2021/11/14 03:14

shiketa様 ご回答ありがとうございます。 parseの意味をしっかりと理解していなかったようです。 助かりました。
guest

0

全角文字が入るとパースできないと思います。

それぞれreplaceしてください。
年→-
月→-
日→-

投稿2021/11/14 02:25

m.ts10806

総合スコア80765

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

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

mouton

2021/11/14 03:15

m.ts10806様 ご回答ありがとうございます。 こちらの方法でも良かったのですが、 今回は上記の方の方法で実装を進めていこうと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問