Ruslan Chepizhko Asked:2020-01-22 23:45:30 +0000 UTC2020-01-22 23:45:30 +0000 UTC 2020-01-22 23:45:30 +0000 UTC 按周分组所有日期 772 我以这种格式以字符串形式接收订单日期,2017-07-25T13:24:46+0300 并且我应该将所有日期分组为周。即例如本周某某订单完成,前一周有该订单等,并由周报组成一个String集合。 java 1 个回答 Voted Best Answer Vasya Evstropov 2020-01-23T00:55:48Z2020-01-23T00:55:48Z 请参阅下面的示例。从 String 获得的日期被解析并转换为日历。日历有一个方法——从年初获取周数。因此,可以每周保存所有数据。 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; public class MainActivity extends AppCompatActivity { private Button button; private Map<Integer, List<String>> dates; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); dates = new HashMap<>(); putDataInCollection("2017-01-01T13:24:46+0300"); putDataInCollection("2017-01-01T13:24:46+0300"); putDataInCollection("2017-01-05T13:24:46+0300"); putDataInCollection("2017-01-10T13:24:46+0300"); putDataInCollection("2017-01-12T13:24:46+0300"); putDataInCollection("2017-01-15T13:24:46+0300"); } private void putDataInCollection(String order){ Calendar calendar = Calendar.getInstance(); calendar.setTime(getDate(order)); List<String> datesList ; if (dates.get(calendar.get(Calendar.WEEK_OF_YEAR))!=null) { datesList = dates.get(calendar.get(Calendar.WEEK_OF_YEAR)); } else { datesList = new ArrayList<>(); } datesList.add(order); dates.put(calendar.get(Calendar.WEEK_OF_YEAR),datesList); } private Date getDate(String date) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'kk:mm:ssZ"); Date convertedDate = new Date(); try { convertedDate = dateFormat.parse(date); } catch (ParseException e) { e.printStackTrace(); } return convertedDate; } }
请参阅下面的示例。从 String 获得的日期被解析并转换为日历。日历有一个方法——从年初获取周数。因此,可以每周保存所有数据。