12

入力文字列:2012年6月14日-01:00:00 UTC

出力ローカル文字列:2012年6月13日-21:00:00 EDT

私はからオフセットを取得するのが好きです

NSTimeZone* destinationTimeZone = [NSTimeZone systemTimeZone];
NSLog(@"Time Zone: %@", destinationTimeZone.abbreviation);

なにか提案を ?

4

5 に答える 5

23

これはあなたが必要とすることをするはずです:

NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
fmt.dateFormat = @"LLL d, yyyy - HH:mm:ss zzz";
NSDate *utc = [fmt dateFromString:@"June 14, 2012 - 01:00:00 UTC"];
fmt.timeZone = [NSTimeZone systemTimeZone];
NSString *local = [fmt stringFromDate:utc];
NSLog(@"%@", local);

例が正しくないことに注意してください。UTCで6月14日の午前1時でも、ESTでは6月13日、標準の午後8時、または夏時間の午後9時です。私のシステムでは、このプログラムは

Jun 13, 2012 - 21:00:00 EDT
于 2012-07-26T20:56:52.033 に答える
5

スウィフト3

var dateformat = DateFormatter()
dateformat.dateFormat = "LLL d, yyyy - HH:mm:ss zzz"
var utc: Date? = dateformat.date(fromString: "June 14, 2012 - 01:00:00 UTC")
dateformat.timeZone = TimeZone.current
var local: String = dateformat.string(from: utc)
print(local)


Swift 4:日付延長UTCまたはGMT⟺ローカル

//UTC or GMT ⟺ Local 

extension Date {

    // Convert local time to UTC (or GMT)
    func toGlobalTime() -> Date {
        let timezone = TimeZone.current
        let seconds = -TimeInterval(timezone.secondsFromGMT(for: self))
        return Date(timeInterval: seconds, since: self)
    }

    // Convert UTC (or GMT) to local time
    func toLocalTime() -> Date {
        let timezone = TimeZone.current
        let seconds = TimeInterval(timezone.secondsFromGMT(for: self))
        return Date(timeInterval: seconds, since: self)
    }

}
于 2017-05-15T11:06:51.183 に答える
4
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"MMMM d, yyyy - HH:mm:ss zzz"; // format might need to be modified

NSTimeZone* destinationTimeZone = [NSTimeZone systemTimeZone];
[dateFormatter setTimeZone:destinationTimeZone];

NSDate *oldTime = [dateFormatter dateFromString:utcDateString];

NSString *estDateString = [dateFormatter stringFromDate:oldTime];
于 2012-07-26T20:36:54.957 に答える
2

これはGMTから現地時間に変換されます。UTC時間に少し変更できます

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm";

NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"]; 
[dateFormatter setTimeZone:gmt]; 
NSString *timeStamp = [dateFormatter stringFromDate:[NSDate date]]; 
[dateFormatter release];

iPhoneから取得:NSDateはGMTを現地時間に変換します

于 2012-07-26T20:36:01.483 に答える
0
func timeConverter() -> 
{
    let zone = TimeZone.current
    let sec = -TimeInterval(zone.secondsFromGMT(for: self)
    return Date(timeInterval: sec , since : self)
}
于 2020-02-06T10:28:45.383 に答える