2016-08-21 7 views
1

天気予報のアプリケーションにAPIを使用しています。このAPIが返すJSONは、「日付」という文字列型の"date": "2016-08-20"を返します。しかし、私はその日を「水曜日」のように画面に書きたいと思っています。私はインターネット上でコンバージョンを探しますが、私の場合は解決策を見つけることができませんでした。誰もそれを行う方法を説明することはできますか?前もって感謝します。ところで、これはアンドロイドプロジェクトです。文字列の日付を日の文字列に変更する

+0

あなたが検索する必要のある変換はありません**代わりに** "Parsing" ** –

+0

Okey私はそれを探します –

+1

あなたが必要としているものだと思っています.... https://developer.android.com /reference/java/text/SimpleDateFormat.html – Opiatefuchs

答えて

1

あなたは、単に現在の日付のString値を解析し、それからDate オブジェクトを取得するには、2 SimpleDateFormat TERS、

  1. 1を必要としています。
  2. そして2番目にStringの値をDateオブジェクトに設定してください。

出力

Saturday 

コード

import java.util.*; 
import java.text.*; 

public class HelloWorld { 
    public static void main(String[] args) throws ParseException { 
     Date date = new SimpleDateFormat("yyyy-MM-dd").parse("2016-08-20"); 
     String dayOfWeek = new SimpleDateFormat("EEEEE").format(date); 
     System.out.println(dayOfWeek); 
    } 
} 

OR - ワンラインコードから私たちは、読みやす

012を無視した場合
+0

うまくいきました。 –

+0

@AhmetUrunそれがうまくいってうれしい。編集された答えもご覧ください。私は余分な 'Calendar'オブジェクトを使用しないことでそれを最適化しました。 –

0

これは役立つかもしれない、

String weekDay = ""; 
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 
     Calendar cal = Calendar.getInstance(); 
     cal.setTime(df.parse(yourDateAsStringHere)); 
     int dayOfWeek= cal.get(Calendar.DAY_OF_WEEK); 

      if (Calendar.MONDAY == dayOfWeek) { 
       weekDay = "monday"; 
      } else if (Calendar.TUESDAY == dayOfWeek) { 
       weekDay = "tuesday"; 
      } else if (Calendar.WEDNESDAY == dayOfWeek) { 
       weekDay = "wednesday"; 
      } else if (Calendar.THURSDAY == dayOfWeek) { 
       weekDay = "thursday"; 
      } else if (Calendar.FRIDAY == dayOfWeek) { 
       weekDay = "friday"; 
      } else if (Calendar.SATURDAY == dayOfWeek) { 
       weekDay = "saturday"; 
      } else if (Calendar.SUNDAY == dayOfWeek) { 
       weekDay = "sunday"; 
      } 
+0

これはコンパイルされず、 'new SimpleDateFormat(" EEEE ")の書式(new SimpleDateFormat(" yyyy-MM-dd "))を書くのに非常に長い方法です。 2016-08-20 "))'。 – Andreas

0

使用例えばSimpleDateFormatクラス、:

try { 
      String inputStr = "2016-08-20"; 
      Date inputDate = new SimpleDateFormat("yyyy-MM-dd").parse(inputStr); 
      String dayName = new SimpleDateFormat("EEEE").format(inputDate); 
     } catch (ParseException e) { 
      e.printStackTrace(); 
     } 
1

あなたは、文字列をトークン化するために、スプリットを使用することができますが、私はそれを行うための標準的な方法だからにDateFormatを使用して好みますプロセス:

String dateString ="2016-08-20"; 
SimpleDateFormat formatInput = new SimpleDateFormat("yyyy-MM-dd"); 
Date date = formatInput.parse(dateString); 
SimpleDateFormat formatOutput = new SimpleDateFormat("EEEE"); 
String day = formatOutput.format(date); 

アイディアはを作成していますインスタンスを文字列2016-08-20に入力し、次にDateインスタンスからインスタンスを作成して曜日を描画します。

関連する問題