相关疑难解决方法(0)

如何创建日期时间戳并格式化为ISO 8601,RFC 3339,UTC时区?

如何使用ISO 8601RFC 3339的格式标准生成日期时间戳?

目标是一个如下所示的字符串:

"2015-01-01T00:00:00.000Z"
Run Code Online (Sandbox Code Playgroud)

格式:

  • 年,月,日,如"XXXX-XX-XX"
  • 字母"T"作为分隔符
  • 小时,分钟,秒,毫秒,如"XX:XX:XX.XXX".
  • 字母"Z"作为零偏移的区域指示符,也就是UTC,GMT,Zulu时间.

最佳案例:

  • Swift源代码简单,简洁,直观.
  • 无需使用任何其他框架,子项目,cocoapod,C代码等.

我搜索过StackOverflow,Google,Apple等,并没有找到Swift的答案.

似乎最有前途的类NSDate,NSDateFormatter,NSTimeZone.

相关问答:如何在iOS中获得ISO 8601日期?

这是迄今为止我提出的最好的:

var now = NSDate()
var formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
formatter.timeZone = NSTimeZone(forSecondsFromGMT: 0)
println(formatter.stringFromDate(now))
Run Code Online (Sandbox Code Playgroud)

time date iso8601 rfc3339 swift

172
推荐指数
6
解决办法
10万
查看次数

您如何按时间顺序从Firebase正确订购数据

我正在尝试从Firebase订购我的数据,因此最新的帖子位于顶部(如Instagram),但我无法让它正常工作.我应该使用服务器时间戳吗?是否有"createdAt"字段?

func getPosts() {
    POST_REF.observeEventType(.Value, withBlock: { snapshot in
        guard let posts = snapshot.value as? [String : [String : String]] else {
            print("No Posts Found")
            return
        }

        Post.feed?.removeAll()
        for (postID, post) in posts {
            let newPost = Post.initWithPostID(postID, postDict: post)!
            Post.feed?.append(newPost)
        }
        Post.feed? = (Post.feed?.reverse())!
        self.tableView.reloadData()
        }, withCancelBlock: { error in
            print(error.localizedDescription)
    })
}
Run Code Online (Sandbox Code Playgroud)

ios firebase swift firebase-realtime-database

11
推荐指数
1
解决办法
1万
查看次数

Firebase queryOrderedByChild()方法不提供已排序的数据

我的数据库结构是这样的:

{
  "users": {
    "alovelace": {
      "name": "Ada Lovelace",
      "score": 4,
    },
    "ghopper": { ... },
    "eclarke": { ... }
  }
}
Run Code Online (Sandbox Code Playgroud)

我试图按降序检索前20个分数.

let queryRef = FIRDatabase.database().reference().child("users").queryOrderedByChild("score").queryLimitedToLast(20)
queryRef.observeSingleEventOfType(.Value, withBlock: { (querySnapShot) in
      print(querySnapShot.value)
})
Run Code Online (Sandbox Code Playgroud)

我想要输出像

score": 4
score": 3
score": 2

or 

score": 2
score": 3
score": 4

or 

2
3
4
Run Code Online (Sandbox Code Playgroud)

请让我知道如何解决这个问题.

ios firebase swift firebase-realtime-database ios9

2
推荐指数
2
解决办法
2016
查看次数

Firebase获得最高的100分

这是我的firebase的屏幕截图: 在此输入图像描述 我试图在firebase数据库中检索最高的100分我使用此代码将新节点添加到firebase:

 Map<String, String> post1 = new HashMap<String, String>();
        post1.put("name",name);
        post1.put("score",score);
        myRef.push().setValue(post1);
Run Code Online (Sandbox Code Playgroud)

这是我用来检索最高100分不起作用的代码(代码有效,但它没有检索到最高的100分)

 Query queryRef = myRef.orderByChild("score").limitToFirst(100);
        queryRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
                    Score score=postSnapshot.getValue(Score.class);
                    Log.d("test"," values is " + score.getName()  + " " + score.getScore());
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        }); 
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-realtime-database

2
推荐指数
1
解决办法
4232
查看次数