菜鸟教程小白 发表于 2022-12-11 19:01:55

ios - 如何在swift 3中将日期范围转换为字符串?


                                            <p><p>如何将日期转换为字符串格式? </p>

<p>我得到两个日期之间的日期(从开始到结束日期)。我正在使用以下方法</p>

<pre><code>class Dates {
static func printDatesBetweenInterval(_ startDate: Date, _ endDate: Date) {
    var startDate = startDate
    let calendar = Calendar.current

    let fmt = DateFormatter()
    fmt.dateFormat = &#34;yyyy-MM-dd&#34;

    while startDate &lt;= endDate {
      print(fmt.string(from: startDate))
      startDate = calendar.date(byAdding: .day, value: 1, to: startDate)!
    }
}

static func dateFromString(_ dateString: String) -&gt; Date {
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = &#34;yyyy-MM-dd&#34;

    return dateFormatter.date(from: dateString)!
}}
</code></pre>

<p>在这里打印日期</p>

<pre><code>Dates.printDatesBetweenInterval(Dates.dateFromString(&#34;2017-10-02&#34;), Dates.dateFromString(&#34;2017-10-9&#34;))
</code></pre>

<p>结果:</p>

<pre><code>2017-10-02 2017-10-03 2017-10-04 2017-10-05 2017-10-06 2017-10-07 2017-10-08 2017-10-09
</code></pre>

<p>现在,我想将此日期以字符串格式传递给日历(我在应用程序中使用 FSCalendar 库)。我想要这种格式
示例:</p>

<pre><code>[&#34;2017-10-02&#34;, &#34;2017-10-03&#34;, &#34;2017-10-04&#34;, &#34;2017-10-05&#34;, &#34;2017-10-06&#34;, &#34;2017-10-07&#34;, &#34;2017-10-08&#34;, &#34;2017-10-09&#34;]
</code></pre>

<p>谁能指导我。谢谢</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><pre><code>static func getDatesStringBetweenInterval(_ startDate: Date, _ endDate: Date)-&gt; String {
      var retval = &#34;[&#34;

      var startDate = startDate
      let calendar = Calendar.current

      let fmt = DateFormatter()
      fmt.dateFormat = &#34;yyyy-MM-dd&#34;

      while startDate &lt;= endDate {
            if startDate &lt; endDate {
                retval.append(&#34;\&#34;\(fmt.string(from: startDate))\&#34;, &#34;)
            } else {
               retval.append(&#34;\&#34;\(fmt.string(from: startDate))\&#34;&#34;)
            }
            startDate = calendar.date(byAdding: .day, value: 1, to: startDate)!
      }
      retval.append(&#34;]&#34;)

      return retval
    }
</code></pre>

<p>用法:</p>

<pre><code>let aDate = Dates.dateFromString(&#34;2017-01-01&#34;)
let bDate = Dates.dateFromString(&#34;2017-01-05&#34;)
let datesString = Dates.getDatesStringBetweenInterval(aDate, bDate)
print(datesString)
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何在swift 3中将日期范围转换为字符串?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/46811163/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/46811163/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何在swift 3中将日期范围转换为字符串?