2016-08-21 143 views
1

我爲我的天氣應用程序和此API返回的JSON使用了一個API,它給了我這樣的'Date':"date": "2016-08-20"這是字符串類型。但我想像「星期三」那樣在屏幕上寫下一天。我在網上尋找轉換,但我找不到解決方案。任何人都可以解釋如何做到這一點。提前致謝。順便說這是一個android項目。將字符串類型日期更改爲日期字符串

+0

沒有轉換你需要搜索,而是搜索**「解析」** –

+0

Okey我尋找 –

+1

我想這就是你需要的.... https://developer.android.com /reference/java/text/SimpleDateFormat.html – Opiatefuchs

回答

1

你只需要2個SimpleDateFormat TER值,

  1. 一個解析當前日期的String價值,並從中得到Date 對象。
  2. 第二次從Date對象得到String的值。

輸出

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); 
    } 
} 

或 - 一種線路代碼 - 如果我們忽略可讀性

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

public class HelloWorld { 
    public static void main(String[] args) throws ParseException { 
     System.out.println(new SimpleDateFormat("EEEEE").format(new SimpleDateFormat("yyyy-MM-dd").parse("2016-08-20"))); 
    } 
} 
+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

這不會編譯,並且它是編寫新的SimpleDateFormat(「EEEE」)。格式(新的SimpleDateFormat(「yyyy-MM-dd」)。parse(「 2016年8月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

您可以使用拆分來標記字符串,但我更喜歡使用日期格式,因爲它是做一個標準的方法過程:

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); 

這個想法是創建一個Date實例從字符串2016-08-20中的日期開始,然後從Date實例將其格式化爲星期幾。