2016-12-28 11 views
0

私は私がどのように"2016-01-14" に変換したい文字列Swift:通常の文字列をYYYY-MM-DDタイプの文字列に変換しますか?

let a = "20160114" 

を持って、私はNSDateFormatter.dateFromString. のパラメータに渡すことができるようにたDateFormatter文字列に単純な文字列を変換する必要がありますか?

+0

チェックはその作業罰金 –

+0

@Json Bourbneに答える私の、あなたは '時間zone'を投稿する必要があります。 – aircraft

答えて

4

トン

var a = "20160114" 

a.insert("-", atIndex: a.startIndex.advancedBy(4)) 
a.insert("-", atIndex: a.startIndex.advancedBy(4+1+2)) 

print(a) 

印刷: "2016年1月14日"

+2

jason Bourbne:この方法を使用すると、数字の桁数が変更された場合に日付が間違っていたり間違ったりする可能性があります。 – Kalyani

2
let dateformattor = NSDateFormatter() 
dateformattor.dateFormat = "yyyyMMdd" 
dateformattor.timeZone = NSTimeZone.localTimeZone() 
// here just pass your string that you want to convert into date. 
let dt = "20160114" 
let dt1 = dateformattor.dateFromString(dt as String) 
dateformattor.dateFormat = "yyyy-MM-dd" 
dateformattor.timeZone = NSTimeZone.localTimeZone() 
print("Time :",dateformattor.stringFromDate(dt1!)) 

出力:

Time : 2016-01-14 
+0

@Robこれまでに私のシステムで文字列を送信したときに日付または時刻に変換したときのデフォルト設定はUTC時刻だったので、私のコードでそれを与えて問題を解決しました –

+0

@Rob ok brother私にこの情報。 :) –

+2

うん、それは良いです。率直に言って、私はタイムゾーンの設定を気にすることはありません(と私は確かにそれを2回はしません;笑)が、これは素晴らしい作品です。迅速な修正をありがとう! – Rob

0

日付と時刻を扱うとき、これは一般的には適用できないかもしれないが、あなただけのダッシュ(フォーマットは同じであることが保証される)を挿入する必要がある場合、これは非常にあります唯一あなたがSWIFの挿入 sunctionを使用することができます与えられたフォーマット に文字列を変換するための簡単なソリューション

var str = "20160112" 
str.characters.insert("-", at: str.index(str.startIndex, offsetBy: 6)) 
str.characters.insert("-", at: str.index(str.startIndex, offsetBy: 4)) 
print(str) // outputs "2016-01-12" 
+0

文字列の文字表示に 'insert'を呼び出すことと、文字列に直接呼び出すこととの違いは何ですか?正直言って、 – Alexander

+0

、私は知らない。私はそれが同じものだと思うし、str.insertは同じparamsでself.characters.insertを呼び出すだけですが、それは本当に単なる推測です。読みやすさを向上させるために文字を省略することは安全です。 – Lope

0
var str = "20160518" 
    let strCpoy = str 
    str.insert("-", at: strCpoy.index(strCpoy.startIndex, offsetBy: 4)) 
    str.insert("-", at: strCpoy.index(strCpoy.startIndex, offsetBy: 7)) 
    print(str) 
3
let dateString = "20160114" 
    let dateFormatter = NSDateFormatter() 
    dateFormatter.dateFormat = "yyyyMMdd" 

    let dateObj = dateFormatter.dateFromString(dateString) 

    dateFormatter.dateFormat = "yyyy-MM-dd" 
    print("Dateobj: \(dateFormatter.stringFromDate(dateObj!))") 
関連する問題