Java 根据天/月选择JSON
在我正在读取的.JSON文件中有以下JSON条目 有许多JSON条目,每个条目都具有相同的格式。最初的两个值指定日期和月份:Java 根据天/月选择JSON,java,android,arrays,json,date,Java,Android,Arrays,Json,Date,在我正在读取的.JSON文件中有以下JSON条目 有许多JSON条目,每个条目都具有相同的格式。最初的两个值指定日期和月份: [“1”、“12”、“06:26”、“08:03”、“12:09”、“13:46”、“14:17”、“16:05”、“17:42”] 因此,首字母“1”和“12”将等同于12月1日的 有人能帮我写一个方法,一旦读入JSON,设备就会使用设备日/月来检查要在应用程序屏幕上显示的JSON数组吗?首先,要检索当前的日和月,我将使用以下代码: Calendar instance
[“1”、“12”、“06:26”、“08:03”、“12:09”、“13:46”、“14:17”、“16:05”、“17:42”]
因此,首字母“1”和“12”将等同于12月1日的
有人能帮我写一个方法,一旦读入JSON,设备就会使用设备日/月来检查要在应用程序屏幕上显示的JSON数组吗?首先,要检索当前的日和月,我将使用以下代码:
Calendar instance = Calendar.getInstance();
currentMonth = instance.get(Calendar.MONTH);
currentDay = instance.get(Calendar.DAY);
int month=currentMonth+1;
在此之后,您需要通过创建一个json数组,然后创建一个json对象,从json字符串中提取数据,并从字符串中过滤出特定需要的字符串(日期和月份)
JSONArray arr = new JSONArray(result);
JSONObject jObj = arr.getJSONObject(0);
String day = jObj.getString("Day");
String month = jObj.getString("Month");
现在,将所有日期放入数组中。
然后,将所有给定日期与当前日期进行简单比较
问题是,您没有这样的前缀:
[{"Date":"2012-1-4T00:00:00","keywords":null, ... }]
需要知道从哪里提取字符串,所以你应该考虑更新你的JSON输出。 < P>我不是JSON的专家,但我知道有多少天和几个月。所以下面是如何检查JSON数组中的两个值是否根据你的设备表示今天的日期:
MonthDay today = MonthDay.now(ZoneId.systemDefault());
try {
if (MonthDay.of(Integer.parseInt("12"), Integer.parseInt("1")).equals(today)) {
System.out.println("This is the array to display today");
}
} catch (NumberFormatException nfe) {
System.out.println("Day or month from array was not a number: " + nfe.getMessage());
}
我正在使用并推荐java.time
,这是一种现代的java日期和时间API
ZoneId.systemDefault()
是我试图获取设备时区设置的尝试。但是,请注意,我只获取JVM的时区设置,它并不总是相同的。例如,JVM设置可能已被程序的其他部分或运行在同一JVM中的其他程序更改
如何从每个JSON数组中获取这些字符串还取决于用于解析JSON的库
问题:我可以在Android上使用java.time吗?
是的,你可以在Android上使用java.time
。它至少需要java6
- 在Java8和更高版本以及更新的Android设备上,内置了现代API
- 在Java6和Java7中,获取三个后端口,即新类的后端口(三个用于JSR310;请参阅底部的链接)
- 在较旧的Android上,使用Android版的ThreeTen Backport。它被称为ThreeTenABP。并确保您使用子包从
org.ThreeTen.bp
导入日期和时间类
链接
- 解释如何使用
java.time
- ,其中首先描述了
java.time
- ,java.time
到java6和7的后台端口(JSR-310为三个)
,Android版Three Ten Backport
,解释得非常透彻
好吧,这是接收数据最糟糕的方式看看这个例子吧。!@Atifabasi谢谢。这个例子使用的是过时的类Calendar
和Date
,更糟糕的是,还有臭名昭著的麻烦SimpleDateFormat
。我建议避免使用它们,改为使用它们。Calendar
类太长了过时。请不要教年轻人使用它,而是使用它。