首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将JSON文件中的节添加到TableView

将JSON文件中的节添加到TableView
EN

Stack Overflow用户
提问于 2019-01-10 18:12:03
回答 5查看 141关注 0票数 0

大家早上好,我已经创建了一个使用JSON文件中的数据的TableView。我可以使用Alamofire将我的数据放到我的TableView中,但为了便于参考,我想用date将它们按部分排序。因为对于超过15天的每个日期,每小时都有天气预报。因此,理想情况下,我希望每天的一节,打开与点击,并提供每小时的预测。

这是我的ViewController:

代码语言:javascript
复制
import UIKit
import Alamofire
import MapKit

class WeatherProController: UIViewController,  CLLocationManagerDelegate, UITableViewDataSource,UITableViewDelegate  {

private let refreshControl = UIRefreshControl()

var datas = [WeatherProData]()
var locManager = CLLocationManager()
var currentLocation: CLLocation!

var timer = Timer()
var jour = UIColor(red: 0, green: 191 / 255, blue: 1, alpha: 1)
var nuit = UIColor(red: 51 / 255, green: 116 / 255, blue: 255 / 255, alpha: 1)

let didBecomeActiveNotificationName = UIApplication.didBecomeActiveNotification

let identifiantCell = "dataProCell"
let identifiantSegue = "versDetailDonneePro"

@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var menuButton: UIBarButtonItem!
@IBOutlet weak var label: UILabel!
@IBOutlet weak var activityIndicatorView: UIActivityIndicatorView!

override func viewDidLoad() {
    super.viewDidLoad()
    tableView.delegate = self
    tableView.dataSource = self
    locManager.requestAlwaysAuthorization()
    NotificationCenter.default.addObserver(self, selector: #selector(scheduleTimer), name: didBecomeActiveNotificationName, object: nil)
    changeBackground()
    data()

    // Add Refresh Control to Table View
    if #available(iOS 10.0, *) {
        tableView.refreshControl = refreshControl
    } else {
        tableView.addSubview(refreshControl)
    }
    // Configure Refresh Control
    refreshControl.addTarget(self, action: #selector(refreshWeatherData(_:)), for: .valueChanged)
    refreshControl.tintColor = UIColor.white
    let attributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
    refreshControl.attributedTitle = NSAttributedString(string: "Refreshing please wait", attributes: attributes)

}

@objc private func refreshWeatherData(_ sender: Any) {
    fetchWeatherData()
}

private func setupActivityIndicatorView() {
    activityIndicatorView.startAnimating()
}

private func fetchWeatherData() {
    data()
    self.refreshControl.endRefreshing()
  // self.activityIndicatorView.stopAnimating()
}

@objc func scheduleTimer() {
    // schedule the timer
    timer = Timer(fireAt: Calendar.current.nextDate(after: Date(), matching: DateComponents(hour: 6..<21 ~= Date().hour ? 21 : 6), matchingPolicy: .nextTime)!, interval: 0, target: self, selector: #selector(changeBackground), userInfo: nil, repeats: false)
    print(timer.fireDate)
    //        RunLoop.main.add(timer, forMode: .RunLoop.Mode.common)
    print("new background chenge scheduled at:", timer.fireDate.description(with: .current))
}

@objc func changeBackground(){
    // check if day or night shift
    self.view.backgroundColor =  6..<21 ~= Date().hour ? jour : nuit
    // schedule the timer
    scheduleTimer()
}


func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return datas.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    if let cell = tableView.dequeueReusableCell(withIdentifier: identifiantCell) as? WeatherProCell {
        let data = datas[indexPath.row]
        cell.creerCell(data)
        return cell
    }
    return UITableViewCell()
}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    if let cell = tableView.cellForRow(at: indexPath) as? WeatherProCell {
        cell.textIsHidden.isHidden = !cell.textIsHidden.isHidden
        cell.textIsHidden1.isHidden = !cell.textIsHidden1.isHidden
        cell.textIsHidden2.isHidden = !cell.textIsHidden2.isHidden
        cell.textIsHidden3.isHidden = !cell.textIsHidden3.isHidden
        cell.textIsHidden4.isHidden = !cell.textIsHidden4.isHidden
        cell.textIsHidden5.isHidden = !cell.textIsHidden5.isHidden
        cell.textIsHidden6.isHidden = !cell.textIsHidden6.isHidden
        cell.textIsHidden7.isHidden = !cell.textIsHidden7.isHidden
        cell.textIsHidden8.isHidden = !cell.textIsHidden8.isHidden
        cell.textIsHidden9.isHidden = !cell.textIsHidden9.isHidden
        cell.cloud.isHidden = !cell.cloud.isHidden
        cell.rTemp.isHidden = !cell.rTemp.isHidden
        cell.cloudBase.isHidden = !cell.cloudBase.isHidden
        cell.dewp.isHidden = !cell.dewp.isHidden
        cell.press.isHidden = !cell.press.isHidden
        cell.pressIcon.isHidden = !cell.pressIcon.isHidden
        cell.hydro.isHidden = !cell.hydro.isHidden
        cell.hydroIcon.isHidden = !cell.hydroIcon.isHidden
        cell.vent.isHidden = !cell.vent.isHidden
        cell.ventIcon.isHidden = !cell.ventIcon.isHidden
        cell.rainIcon.isHidden = !cell.rainIcon.isHidden
        cell.rain.isHidden = !cell.rain.isHidden
        cell.iso0.isHidden = !cell.iso0.isHidden
        cell.freezeRain.isHidden = !cell.freezeRain.isHidden
        cell.noSnow.isHidden = !cell.noSnow.isHidden
        cell.snowUp.isHidden = !cell.snowUp.isHidden
        cell.visibility.isHidden = !cell.visibility.isHidden
        cell.snowProb.isHidden = !cell.snowProb.isHidden

        tableView.beginUpdates()
        tableView.endUpdates()
        tableView.deselectRow(at: indexPath, animated: true)
    }
}

//func numberOfSections(in tableView: UITableView) -> Int {
 //  return datas.count
//}

//func tableView(_ tableView: UITableView, titleForHeaderInSection    section: Int) -> String? {
   // return datas[section].date
//}

func data() {
    if ( CLLocationManager.authorizationStatus() == .authorizedWhenInUse ||
        CLLocationManager.authorizationStatus() == .authorizedAlways) {
        currentLocation = locManager.location
    }

    var headers: HTTPHeaders = [
        "Content-Type": "application/json"
    ]

    let user = loginWeatherPro
    let password = motDePasseWeatherPro

    if let authorizationHeader = Request.authorizationHeader(user: user, password: password) {
        headers[authorizationHeader.key] = authorizationHeader.value
    }

    let now = Date()
    let formatter = DateFormatter()
    formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
    formatter.calendar = Calendar(identifier: .iso8601)
    formatter.timeZone = TimeZone.init(abbreviation: "UTC")
    formatter.locale = Locale(identifier: "en_US_POSIX")
    print(formatter.string(from: now))
    let days = Calendar.current.date(byAdding: .day, value: 15, to: now)

    let urlB = urlDeBaseWeatherPro
    let locate = "locatedAt=\(currentLocation.coordinate.longitude),\(currentLocation.coordinate.latitude)"
    let period = "&validPeriod=PT0S"
    let validFrom = "&validFrom=\(formatter.string(from: now))"
    let validUntil = "&validUntil=\(formatter.string(from: days!))"
    let fields = "&fields=" + fieldsParameter
    let url = urlB + locate + period + validFrom + validUntil + fields
    print(url)

    Alamofire.request(url, headers:headers).responseJSON{ response in
        if let JSON = response.result.value as? [String: AnyObject] {
            if let forecast = JSON ["forecasts"] as? NSArray {
                for element in forecast {
                    if let dict = element as? [String: AnyObject],
                        let dates = dict ["validFrom"] as? String ,
                        let weatherCode = dict ["weatherCode"] as? Int ,
                        let weatherCodeString = weatherCodesTab[weatherCode],
                        let temp = dict ["airTemperatureInCelsius"] as? Double ,
                        let cloud = dict ["effectiveCloudCoverInPercent"] as? Double ,
                        let rtemp = dict ["feelsLikeTemperatureInCelsius"] as? Double ,
                        let cloudBase = dict ["cloudBaseHeightInMeter"] as? Double ,
                        let dewp = dict ["dewPointTemperatureInCelsius"] as? Double ,
                        let press = dict ["airPressureAtSeaLevelInHectoPascal"] as? Double ,
                        let hydro = dict ["relativeHumidityInPercent"] as? Double ,
                        let vent = dict ["windSpeedInKilometerPerHour"] as? Double ,
                        let rain = dict ["precipitationProbabilityInPercent"] as? Double ,
                        let iso0 = dict ["freezingLevelHeightInMeter"] as? Double ,
                        let freezeRain = dict ["freezingRainProbabilityInPercent"] as? Double ,
                        let noSnow = dict ["noSnowPossibleBelowHeightInMeter"] as? Double ,
                        let snowUp = dict ["snowCertainAboveHeightInMeter"] as? Double ,
                        let visibility = dict ["visibilityInMeter"] as? Double ,
                        let snowProd = dict ["snowfallProbabilityInPercent"] as? Double {


                        self.datas.append(WeatherProData(date: (DateHelper.obtenir.jourDeLaSemaineWeather(dates)!) + " " + DateHelper.obtenir.dateWeatherPro(dates)! + " à " + (DateHelper.obtenir.heures(dates)!), weatherCode: weatherCodeString, temp: temp, cloud: cloud, rtemp: rtemp, cloudBase: cloudBase, dewp: dewp, press: press, hydro: hydro, vent: vent, rain: rain, iso0: iso0, freezeRain: freezeRain, noSnow: noSnow, snowUp: snowUp, visibility: visibility, snowProb: snowProd))

                      //print(weatherCodeString)

                        self.tableView.reloadData()
                    }
                }
            }
        }
    }
}
 }

模型:

代码语言:javascript
复制
 import UIKit

 class WeatherProData { 

private var _date: String
private var _weatherCode: String
private var _temp: Double
private var _cloud: Double
private var _rTemp: Double
private var _cloudBase: Double
private var _dewp: Double
private var _press: Double
private var _hydro: Double 
private var _vent: Double
private var _rain: Double
private var _iso0: Double
private var _freezeRain: Double
private var _noSnow: Double
private var _snowUp: Double
private var _visibility: Double
private var _snowProb: Double

var date: String {
    return _date
}

var weatherCode: String {
    return _weatherCode
}

var temp: Double {
    return _temp
}

var cloud: Double {
    return _cloud
}

var rtemp: Double {
    return _rTemp
}

var cloudBase: Double {
    return _cloudBase
}

var dewp: Double {
    return _dewp
}

var press: Double {
    return _press
}

var hydro: Double {
    return _hydro
}

var vent: Double {
    return _vent
}

var rain: Double {
    return _rain
}

var iso0: Double {
    return _iso0
}

var freezeRain: Double {
    return _freezeRain
}

var noSnow: Double {
    return _noSnow
}

var snowUp: Double {
    return _snowUp
}

var visibility: Double {
    return _visibility
}

var snowProb: Double {
    return _snowProb
}


init(date: String, weatherCode: String, temp: Double, cloud: Double, rtemp: Double, cloudBase: Double, dewp: Double, press: Double, hydro: Double, vent: Double, rain: Double, iso0: Double, freezeRain: Double, noSnow: Double, snowUp: Double, visibility: Double, snowProb: Double) {
    _date = date
    _weatherCode = weatherCode
    _temp = temp
    _cloud = cloud
    _rTemp = rtemp
    _cloudBase = cloudBase
    _dewp = dewp
    _press = press
    _hydro = hydro
    _vent = vent
    _rain = rain
    _iso0 = iso0
    _freezeRain = freezeRain
    _noSnow = noSnow
    _snowUp = snowUp
    _visibility = visibility
    _snowProb = snowProb
}
 }

单元格:

代码语言:javascript
复制
  import UIKit

 class WeatherProCell: UITableViewCell {

@IBOutlet weak var date: UILabel!
@IBOutlet weak var temp: UILabel!
@IBOutlet weak var weatherCode: UILabel!
@IBOutlet weak var tempIcon: UIImageView!

@IBOutlet weak var textIsHidden: UILabel! {
    didSet {
        textIsHidden.isHidden = true
    }
}
@IBOutlet weak var textIsHidden1: UILabel! {
    didSet {
        textIsHidden1.isHidden = true
    }
}
@IBOutlet weak var textIsHidden2: UILabel! {
    didSet {
        textIsHidden2.isHidden = true
    }
}
@IBOutlet weak var textIsHidden3: UILabel! {
    didSet {
        textIsHidden3.isHidden = true
    }
}
@IBOutlet weak var textIsHidden4: UILabel! {
    didSet {
        textIsHidden4.isHidden = true
    }
}
@IBOutlet weak var textIsHidden5: UILabel! {
    didSet {
        textIsHidden5.isHidden = true
    }
}
@IBOutlet weak var textIsHidden6: UILabel! {
    didSet {
        textIsHidden6.isHidden = true
    }
}
@IBOutlet weak var textIsHidden7: UILabel! {
    didSet {
        textIsHidden7.isHidden = true
    }
}
@IBOutlet weak var textIsHidden8: UILabel! {
    didSet {
        textIsHidden8.isHidden = true
    }
}
@IBOutlet weak var textIsHidden9: UILabel! {
    didSet {
        textIsHidden9.isHidden = true
    }
}
@IBOutlet weak var cloud: UILabel! {
    didSet {
        cloud.isHidden = true
    }
}
@IBOutlet weak var rTemp: UILabel! {
    didSet {
        rTemp.isHidden = true
    }
}
@IBOutlet weak var cloudBase: UILabel! {
    didSet {
        cloudBase.isHidden = true
    }
}
@IBOutlet weak var dewp: UILabel! {
    didSet {
        dewp.isHidden = true
    }
}

@IBOutlet weak var press: UILabel! {
    didSet {
        press.isHidden = true
    }
}
@IBOutlet weak var pressIcon: UIImageView! {
    didSet {
        pressIcon.isHidden = true
    }
}
@IBOutlet weak var hydro: UILabel! {
    didSet {
        hydro.isHidden = true
    }
}
@IBOutlet weak var hydroIcon: UIImageView! {
    didSet {
        hydroIcon.isHidden = true
    }
}
@IBOutlet weak var vent: UILabel! {
    didSet {
        vent.isHidden = true
    }
}
@IBOutlet weak var ventIcon: UIImageView! {
    didSet {
        ventIcon.isHidden = true
    }
}
@IBOutlet weak var rainIcon: UIImageView! {
    didSet {
        rainIcon.isHidden = true
    }
}
@IBOutlet weak var rain: UILabel! {
    didSet {
        rain.isHidden = true
    }
}
@IBOutlet weak var iso0: UILabel! {
    didSet {
        iso0.isHidden = true
    }
}
@IBOutlet weak var freezeRain: UILabel! {
    didSet {
        freezeRain.isHidden = true
    }
}
@IBOutlet weak var noSnow: UILabel! {
    didSet {
        noSnow.isHidden = true
    }
}

@IBOutlet weak var snowUp: UILabel! {
    didSet {
        snowUp.isHidden = true
    }
}
@IBOutlet weak var visibility: UILabel! {
    didSet {
        visibility.isHidden = true
    }
}
@IBOutlet weak var snowProb: UILabel! {
    didSet {
        snowProb.isHidden = true
    }
}


var data: WeatherProData!

override func awakeFromNib() {
    super.awakeFromNib()
}

override func setSelected(_ selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)
}

func creerCell(_ data: WeatherProData) {
    self.data = data
    let attributedDate = NSMutableAttributedString(string: self.data.date)
    date.attributedText = attributedDate

    let Cloud = "\(self.data.cloud)" + " %"
    cloud.text = Cloud

    let Rtemp = "\(self.data.rtemp)" + " °C"
    rTemp.text = Rtemp

    let CloudBase = "\(self.data.cloudBase)" + " m"
    cloudBase.text = CloudBase

    let Dewp = "\(self.data.dewp)" + " °C"
    dewp.text = Dewp

    let Temp = "\(self.data.temp)" + " °C"
    temp.text = Temp
    tempIcon.image = #imageLiteral(resourceName: "Termometre")

    let WeatherCode = "\(self.data.weatherCode)"
    weatherCode.text = WeatherCode

    let Press = "\(self.data.press)" + " hpa"
    press.text = Press
    pressIcon.image = #imageLiteral(resourceName: "Barometre")

    let Hydro = "\(self.data.hydro)" + " %"
    hydro.text = Hydro
    hydroIcon.image = #imageLiteral(resourceName: "Hydrometrie")

    let Vent = "\(self.data.vent)" + " km/h"
    vent.text = Vent
    ventIcon.image = #imageLiteral(resourceName: "Vent")

    let Rain = "\(self.data.rain)" + " %"
    rain.text = Rain
    rainIcon.image = #imageLiteral(resourceName: "Pluviometre")

    let Iso0 = "\(self.data.iso0)" + " m"
    iso0.text = Iso0

    let FreezeRain = "\(self.data.freezeRain)" + " %"
    freezeRain.text = FreezeRain

    let NoSnow = "\(self.data.noSnow)" + " m"
    noSnow.text = NoSnow

    let SnowUp = "\(self.data.snowUp)" + " m"
    snowUp.text = SnowUp

    let Visibility = "\(self.data.visibility)" + " m"
    visibility.text = Visibility

    let SnowProb = "\(self.data.snowProb)" + " %"
    snowProb.text = SnowProb
}
 }

我提前感谢你的帮助,因为我已经为此斗争了一个月了。

下面是指向我的GitHub的链接,以获取完整的文件:

https://github.com/superdevil669/MeteoWapi_iOS_App/tree/beta

EN

回答 5

Stack Overflow用户

发布于 2019-01-10 18:42:54

一种方法是修改数据模型,使其具有一个保存日期(各部分的值)的数组和一个保存每个日期的天气值数组的字典。为了简单起见,我用字符串作为数据类型来“模拟”它。

代码语言:javascript
复制
// Declaration Data model
var sections = [Date]()
var datas = [Date:[String]]()

// Some test values to show how the processing could be
let date = Date()
let value = "Test"

// This would be inside your processing loop
// Check, if section already exists
if !sections.contains(date)
{
    // Add date to sections array
    sections.append(date)

    // Insert empty array in datas dictionary
    datas[date] = [String]()
}
// Add value to array
datas[date]?.append(value)

// This could be inside cellForRowAtIndexPath
// Fetch value
let indexPath = IndexPath(row: 0, section: 0)

let value2 = datas[sections[indexPath.section]]?[indexPath.row]
票数 0
EN

Stack Overflow用户

发布于 2019-01-10 20:01:24

首先,在Swift中,用于获取常量的私有支持变量是可怕的。您可以简单地使用let关键字声明常量。

如果使用struct,甚至可以将WeatherProData减少到

代码语言:javascript
复制
struct WeatherProData { 

    let date: String // must be `Date` for smart grouping
    let weatherCode: String
    let temp: Double
    let cloud: Double
    let rTemp: Double
    let cloudBase: Double
    let dewp: Double
    let press: Double
    let hydro: Double
    let vent: Double
    let rain: Double
    let iso0: Double
    let freezeRain: Double
    let noSnow: Double
    let snowUp: Double
    let visibility: Double
    let snowProb: Double
}

因为您可以免费获得init方法

在Swift中,对数组进行分组非常容易。下面的建议假设将date声明并解码为Date

Dictionary(grouping:by:根据闭包中的条件对数组进行分组,在本例中为当前日期的午夜。

代码语言:javascript
复制
let calendar = Calendar.current
let grouped = Dictionary(grouping: datas, by: { calendar.startOfDay(for: $0.date) })
print(grouped)

在Swift 4.2+中,您可以用以下命令对布尔值求反

代码语言:javascript
复制
cell.textIsHidden.isHidden.toggle()

还可以考虑使用Deodable协议来摆脱手动解码。

票数 0
EN

Stack Overflow用户

发布于 2019-01-14 18:39:08

我尝试了另一个项目,以免损坏我的项目。

代码语言:javascript
复制
import UIKit
import Alamofire

struct WeatherProData {

    let date: String // must be `Date` for smart grouping
//    let weatherCode: String
//    let temp: Double
//    let cloud: Doublea
//    let rTemp: Double
//    let cloudBase: Double
//    let dewp: Double
//    let press: Double
//    let hydro: Double
//    let vent: Double
//    let rain: Double
//    let iso0: Double
//    let freezeRain: Double
//    let noSnow: Double
//    let snowUp: Double
//    let visibility: Double
//    let snowProb: Double
}

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    @IBOutlet weak var tableView: UITableView!

    var data = [WeatherProData]()
    var sections = [Date]()
    var dataT = [Date:[String]]()

    override func viewDidLoad() {
        super.viewDidLoad()
        tableView.delegate = self
        tableView.dataSource = self

        let date = Date()
        let value = "Test"

        if !sections.contains(date) {
            sections.append(date)
            dataT[date] = [String]()
        }

        dataT[date]?.append(value)

        var headers : HTTPHeaders = ["Content-Type":"application.json"]

        //        Ajout lofin et mot de passe pour la connection à weather pro
        let user = loginWeatherPro
        let password = motDePasseWeatherPro

        //        Ajout de l'autorisation de connection
        if let authorizationHeader = Request.authorizationHeader(user: user, password: password) {
            headers[authorizationHeader.key] = authorizationHeader.value
        }

        //        formattage de l'heure
        let now = Date()
        let formatter = DateFormatter()
        formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
        formatter.calendar = Calendar(identifier: .iso8601)
        formatter.timeZone = TimeZone.init(abbreviation: "UTC")
        formatter.locale = Locale(identifier: "en_US_POSIX")
        print(formatter.string(from: now))
        let days = Calendar.current.date(byAdding: .day, value: 1, to: now)

        //        preparation de l'url de base
        let urlB = urlDeBaseWeatherPro
        let locate = "locatedAt=3.284752,50.644164"
        let period = "&validPeriod=PT0S"
        let validFrom = "&validFrom=\(formatter.string(from: now))"
        let validUntil = "&validUntil=\(formatter.string(from: days!))"
        let fields = "&fields=" + fieldsParameter
        let url = urlB + locate + period + validFrom + validUntil + fields

        Alamofire.request(url, headers:headers).responseJSON { response in
            if let JSON = response.result.value as? [String: AnyObject] {
                if let forecast = JSON ["forecasts"] as? NSArray {
                    for element in forecast {
                        if let dict = element as? [String: AnyObject],
                            let dates = dict ["validFrom"] as? String {
                            self.data.append(WeatherProData(date: dates))
                            print(dates)
                            self.tableView.reloadData()
                        }
                    }
                }
            }
        }
    }

    func numberOfSections(in tableView: UITableView) -> Int {
        return dataT.count
    }

    func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
        return "test"
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return data.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
        let datas = data[indexPath.row]
        cell.textLabel?.text = datas.date
        return cell
    }

    override func viewWillAppear(_ animated: Bool) {
        self.tableView.reloadData()
    }
}

我做了最简单的事情,但是我不能归类我的UITableView not部分,我想这一定是由于JSON文件将这个作为日期发送给我。

代码语言:javascript
复制
2019-01-14T10:34:04Z
2019-01-14T12:00:00+01:00
2019-01-14T13:00:00+01:00
2019-01-14T14:00:00+01:00
2019-01-14T15:00:00+01:00
2019-01-14T16:00:00+01:00
2019-01-14T17:00:00+01:00
2019-01-14T18:00:00+01:00
2019-01-14T19:00:00+01:00
2019-01-14T20:00:00+01:00
2019-01-14T21:00:00+01:00
2019-01-14T22:00:00+01:00
2019-01-14T23:00:00+01:00
2019-01-15T00:00:00+01:00
2019-01-15T01:00:00+01:00
2019-01-15T02:00:00+01:00
2019-01-15T03:00:00+01:00
2019-01-15T04:00:00+01:00
2019-01-15T05:00:00+01:00
2019-01-15T06:00:00+01:00
2019-01-15T07:00:00+01:00
2019-01-15T08:00:00+01:00
2019-01-15T09:00:00+01:00
2019-01-15T10:00:00+01:00
2019-01-15T11:00:00+01:00

谢谢。谢谢。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54126331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档