要转换为NSDate的字符串格式应该是什么?

时间:2016-07-28 15:44:46

标签: ios swift nsdate nsdateformatter

我正在从服务器跟踪两种类型的字符串:

  1. 2016-07-28T12:25:31.922247
  2. 2016-07-28T13:39:13
  3. 我想将它们转换为NSDate。我正在使用以下代码片段进行转换,但它失败了:

    let dateFormatter = NSDateFormatter()
    dateFormatter.timeZone = NSTimeZone(name: "UTC")
    dateFormatter.dateFormat = "yyyy-MM-ddTHH:mm:ss"
    

    我没有得到所需的输出。

4 个答案:

答案 0 :(得分:1)

如果你不关心这一小部分,那么你可以像这样删除它。

var strDate = "2016-07-28T12:25:31.922247"
if strDate.rangeOfString(".") != nil{
     let arr = strDate.characters.split{$0 == " "}.map(String.init)
     strDate = arr[0]
}
//Now you can convert this string to date using same date format
let formatter= NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
let date = formatter.dateFromString(strDate)

答案 1 :(得分:0)

您可以从此Link

中获取确切的格式

对于第二个字符串,请使用此

FLAG_KEEP_SCREEN_ON

答案 2 :(得分:0)

您的日期格式适用于'T',但添加了yyyy-MM-dd'T'HH:mm:ss

示例:2016-07-28T12:25:31.922247

但对于922247,您需要澄清这意味着yyyy-MM-ddTHH:mm:ssZ

事实上从来没有见过这样的事情,但我会尝试使用$prod_query=mysqli_query($con,"SELECT * FROM tblproducts"); $num_rows_prod=mysqli_num_rows($prod_query); echo "<div class='row'>"; while($fetch=mysqli_fetch_assoc($prod_query)) { $ppid=$fetch['p_pid']; $pname=$fetch['p_name']; $pprice=$fetch['p_price']; $pimg='<img src="data:image/jpeg;base64,'. base64_encode($fetch['p_image']). '" width="100%" height="280">'; echo " <form method='post' action='order.php'> <div class='col-lg-4'> <div class='panel panel-primary'> <div class='panel-heading'> <h3 class='panel-title'>$pname | ₱$pprice</h3> </div> <div class='panel-body'> $pimg<hr /> <input type='hidden' name='id' value='$ppid'> <button class='btn btn-primary' name='btnaddcart' type='submit'>Order Now!</button> </div> </div> </div> </form> "; } echo "</div>";

答案 3 :(得分:0)

你需要引用“T”(或任何以字面形式出现的字母字符),试试:

let dateFormatter = NSDateFormatter()
dateFormatter.timeZone = NSTimeZone(name: "UTC")
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"

请注意,这只会解析您的第二个字符串。要解析您的第一个字符串,您需要使用:

dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.S"

如果你关心小数秒。由于NSDateFormatter是一个文字解析器,因此它不允许您轻松解析任何一种格式,如果您必须解析它们,只需将它传递给一个,如果失败则传递给另一个。