将String类型日期更改为Day字符串

时间:2016-08-21 11:23:30

标签: java android datetime

我正在使用我的天气应用程序的API和此API返回的JSON,为我提供了'日期'像那样:"date": "2016-08-20"是字符串类型。但是我想在屏幕上写下这个日子,比如周三'。我在互联网上查找转换但我无法找到适合我案例的解决方案。任何人都可以解释如何做到这一点。提前致谢。顺便说一下,这是一个Android项目。

4 个答案:

答案 0 :(得分:1)

您可以使用split来对字符串进行标记,但我更喜欢使用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);

我们的想法是从字符串Date中的日期创建2016-08-20实例,然后从Date实例格式化它以呈现星期几。

答案 1 :(得分:1)

您只需要2 SimpleDateFormat个,

  1. 一个解析当前日期的String值并获取Date 它的对象。
  2. 和第二个从String对象获取Date值的一周。
  3. <强>输出

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

答案 2 :(得分: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";
            }

答案 3 :(得分: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();
        }