Java 将日期字符串转换为";yyyy/mm/dd hh:mm:ss“;Android&;敏捷的

Java 将日期字符串转换为";yyyy/mm/dd hh:mm:ss“;Android&;敏捷的,java,android,ios,iphone,swift,Java,Android,Ios,Iphone,Swift,我正在从服务器获取此格式的字符串 2015-06-18T05:05:00.880483Z 我需要将其转换为yyyy/mm/dd hh:mm:ss格式,该格式应为字符串。如何在Android和Swift-iOS中实现这一点。如果您知道如何在一个平台上执行此操作,请提供帮助。提前感谢。在Swift中,在我的脑海中: NSString *strigDate="json date" NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] i

我正在从服务器获取此格式的字符串

2015-06-18T05:05:00.880483Z

我需要将其转换为
yyyy/mm/dd hh:mm:ss
格式,该格式应为字符串。如何在
Android
Swift-iOS
中实现这一点。如果您知道如何在一个平台上执行此操作,请提供帮助。提前感谢。

在Swift中,在我的脑海中:

NSString *strigDate="json date"

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];
NSDate *date = [dateFormatter dateFromString:strigDate];



dateFormatter=[[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy/mm/dd hh:mm:ss"];
NSString *stringNewDate=[dateFormatter stringFromDate:date];
func convertDateFormat(original: String) -> String {
    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:SSSSSSZZZZZ"
    dateFormatter.locale = NSLocale(localeIdentifier; "en_us_POSIX")
    let date = dateFormatter.dateFromString(yourString)

    dateFormatter.dateFormat = "yyyy/MM/dd HH:mm:ss"
    return dateFormatter.stringFromDate(date)
}
假设您使用的是最终字符串用于显示,而不是机器输入,则可以使用用户通常使用的任何格式来显示日期,即剪切最后两行,然后执行以下操作:

let outputFormatter = NSDateFormatter()
outputFormatter.dateStyle = NSDateFormatterStyle.ShortStyle;
outputFormatter.timeStyle = NSDateFormatterStyle.ShortStyle;
return outputFormatter.stringFromDate(date);
这将是12或24小时,它将以自然的方式为用户处理数天和数月的事务,它将以阿拉伯语打印,或者将遵循中国日历而不是公历,等等


NSDateFormatter
保留根据用户显示首选项对格式字符串进行某些调整的权利,除非您将区域设置明确设置为
en\u us\u POSIX
。还请注意,您指定的是GMT时间,用户的设备不一定设置为GMT。因此,输出字符串可能会显示本地时间,就像它是特定GMT时间一样。如果您的服务器对最后的
z
不正确,请通过在输出格式化程序中将
时区设置为GMT来覆盖它。

在Android上使用以下代码:

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'");
String dateString = "2015-06-18T05:05:00.880483Z";


try {
Date date = df.parse(dateString);
df.applyPattern("yyyy/mm/dd hh:mm:ss");
String result = df.format(date);

} catch (ParseException e) {
                        e.printStackTrace();
                    }


在Android上,此字符串是getTime的结果?否。我从服务器的JSON字段中得到这个字符串。您能翻译成Swift吗。对不起,我是新手。哎呀,我不这么认为,所以我犯了很多错误。我想您可能需要查看语法。它是objective c,而不是Swift;)这可能是一个微不足道的问题,但为什么你要用大写字母写
MM
?这很重要,还是我也可以将它们写成
mm
呢?您喜欢这个func changeDateTimeToString(date:NSDate!)->字符串{var dateFormatter:NSDateFormatter=NSDateFormatter();dateFormatter.dateFormat=“yyy-mm-dd HH:mm:ss”;dateFormatter.locale=NSLocale(localeIdentifier:“en\u-us\u-POSIX”)var dt:String=dateFormatter.stringFromDate(日期);返回dt;}将返回
NSDate
对象;您需要使用
NSDateFormatter
stringFromDate
将其转换为另一个字符串。iOS有一个名字叫
NSDate
,名字有点混乱:它们“代表一个时间点”。因此,打印的具体内容取决于您的时区、区域设置等。
NSDateFormatter
会根据时区、区域设置和日历对字符串和日期进行区分,所有这些内容都可以隐式显示,但这就是不同内容存在的原因以及它们之间的关系;仅当希望在某些区域失败时,才忽略区域设置。使用
ZZZZZ
说明符,而不是将源
Z
作为固定格式字符,以确保日期格式化程序能够识别原始字符串所在的区域,而无需对其进行硬编码。谢谢。现在我把日期定到了那个格式。它与我当前的日期和时间不匹配。我在新加坡。@Kalairasi你的约会结束时有Z。这意味着现在是UTC时间。你不能打扰佐克,我怎么知道当地时间?有没有办法将UTC转换为我的本地时区?如果无法设置区域设置,则对于设置了12小时cloxk的用户,此代码将失败。比如美国人。请参见QA1480.dateFormatter.timeZone=NSTimeZone.localTimeZone()在dateformarer初始化后写入此行我有如下输出。月份字段输入=2015-06-25T02:31:56.997291Z输出=2015/31/25 10:31:56I获取“2015/06/18 02:05:00”,这取决于您所在的位置。您确定您没有使用YYYY而不是YYYY或mm而不是mm吗?@KalaiArasi检查您在转录此答案时没有混淆您的
m
m
s。(根据我的回答的其他注释:您需要设置区域设置以避免此代码在某些区域失败;最好使用
ZZZZZ
,以便格式化程序识别区域)
let strigDate="json date"

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
let date=dateFormatter.dateFromString(strigDate)

dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy/mm/dd hh:mm:ss"
let stringNewDate=dateFormatter.stringFromDate(date)
let stringDate = "2015-06-18T05:05:00.880483Z"

let df = NSDateFormatter()
df.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ"
if let date = df.dateFromString(stringDate) {
    df.dateFormat = "yyyy/MM/dd HH:mm:ss"
    let finalString = df.stringFromDate(date)
    println(finalString)
}
    var dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
    let date = dateFormatter.dateFromString(str)

    dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "yyyy/MM/dd hh:mm:ss"
    let dateStr = dateFormatter.stringFromDate(date!)
    print("Date string is:::::\(dateStr)")