标签: iso8601

如何从ISO 8601格式创建.NET DateTime

我已经找到了如何将DateTime转换为ISO 8601格式,但没有提到如何在C#中进行反向操作.

我有2010-08-20T15:00:00Z,我想把它变成一个DateTime对象.

我可以自己分离字符串的各个部分,但对于已经是国际标准的东西来说,这似乎很多.

.net c# datetime iso8601 datetime-parsing

115
推荐指数
6
解决办法
10万
查看次数

如何在iOS上获得ISO 8601日期?

2004-02-12T15:19:21+00:00在PHP中获取ISO 8601日期字符串(例如)很容易date('c'),但是如何在Objective-C(iPhone)中获取它?是否有类似的简短方法呢?

这是我发现的漫长道路:

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

NSDate *now = [NSDate date];
NSString *formattedDateString = [dateFormatter stringFromDate:now];
NSLog(@"ISO-8601 date: %@", formattedDateString);

// Output: ISO-8601 date: 2013-04-27T13:27:50-0700
Run Code Online (Sandbox Code Playgroud)

对于如此重要​​的事情来说,这似乎是一件非常艰难的事情.

iso8601 nsdate nsdateformatter ios

109
推荐指数
8
解决办法
6万
查看次数

Python UTC日期时间对象的ISO格式不包括Z(Zulu或零偏移)

为什么python 2.7在UTC日期时间对象的isoformat字符串末尾不包含Z字符(Zulu或零偏移量)?

>>> datetime.datetime.utcnow().isoformat()
'2013-10-29T09:14:03.895210'
Run Code Online (Sandbox Code Playgroud)

而在javascript中

>>>  console.log(new Date().toISOString()); 
2013-10-29T09:38:41.341Z
Run Code Online (Sandbox Code Playgroud)

python datetime timestamp iso8601 python-2.7

94
推荐指数
9
解决办法
8万
查看次数

在Excel中解析ISO8601日期/时间(包括TimeZone)

我需要使用Excel/VBA中包含的时区(从外部源)解析ISO8601日期/时间格式到正常的Excel日期.据我所知,Excel XP(我们正在使用的)没有内置的例程,所以我想我正在寻找一个用于解析的自定义VBA函数.

ISO8601的日期时间看起来像下列之一:

2011-01-01
2011-01-01T12:00:00Z
2011-01-01T12:00:00+05:00
2011-01-01T12:00:00-05:00
2011-01-01T12:00:00.05381+05:00
Run Code Online (Sandbox Code Playgroud)

excel timezone datetime vba iso8601

75
推荐指数
5
解决办法
6万
查看次数

如何将Python的.isoformat()字符串转换回datetime对象

因此在Python 3中,您可以使用.isoformat()生成ISO 8601日期,但是您无法将isoformat()创建的字符串转换回datetime对象,因为Python自己的日期时间指令不能正确匹配.也就是说,%z = 0500而不是05:00(由.isoformat()生成).

例如:

>>> strDate = d.isoformat()
>>> strDate
'2015-02-04T20:55:08.914461+00:00'

>>> objDate = datetime.strptime(strDate,"%Y-%m-%dT%H:%M:%S.%f%z")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python34\Lib\_strptime.py", line 500, in _strptime_datetime
    tt, fraction = _strptime(data_string, format)
  File "C:\Python34\Lib\_strptime.py", line 337, in _strptime
    (data_string, format))
ValueError: time data '2015-02-04T20:55:08.914461+00:00' does not match format '%Y-%m-%dT%H:%M:%S.%f%z'
Run Code Online (Sandbox Code Playgroud)

来自Python的strptime文档:(https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior)

%z UTC格式+ HHMM或-HHMM中的UTC偏移量(如果对象是天真的,则为空字符串).(空),+ 0000,-0400,+ 1030

因此,简而言之,Python甚至不遵守自己的字符串格式化指令.

我知道日期时间在Python中已经很糟糕了,但这真的超出了不合理的范围,变成了愚蠢的土地.

告诉我这不是真的.

python datetime iso8601 rfc3339

75
推荐指数
2
解决办法
6万
查看次数

带有冒号分隔符的时区的Java SimpleDateFormat?

我有以下格式的日期: 2010-03-01T00:00:00-08:00

我在它上面抛出了以下SimpleDateFormats来解析它:

private static final SimpleDateFormat[] FORMATS = {
        new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"), //ISO8601 long RFC822 zone
        new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssz"), //ISO8601 long long form zone
        new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"), //ignore timezone
        new SimpleDateFormat("yyyyMMddHHmmssZ"), //ISO8601 short
        new SimpleDateFormat("yyyyMMddHHmm"),
        new SimpleDateFormat("yyyyMMdd"), //birthdate from NIST IHE C32 sample
        new SimpleDateFormat("yyyyMM"),
        new SimpleDateFormat("yyyy") //just the year
    };
Run Code Online (Sandbox Code Playgroud)

我有一个方便的方法,使用这样的格式:

public static Date figureOutTheDamnDate(String wtf) {
    if (wtf == null) {
        return null;
    }
    Date retval = null;
    for (SimpleDateFormat sdf : FORMATS) {
        try {
            sdf.setLenient(false)
            retval = sdf.parse(wtf); …
Run Code Online (Sandbox Code Playgroud)

java date iso8601

60
推荐指数
6
解决办法
18万
查看次数

在Javascript中解析ISO 8601日期

需要有关将具有以下结构的ISO 8601日期转换为javascript的帮助/提示.

CCYY-MM-DDThh:mm:ssTZD
Run Code Online (Sandbox Code Playgroud)

我想照这样的日期:

January 28, 2011 - 7:30PM EST
Run Code Online (Sandbox Code Playgroud)

我想让这个解决方案尽可能干净简洁.

javascript formatting datetime iso8601

54
推荐指数
3
解决办法
9万
查看次数

在Python中生成RFC 3339时间戳

我正在尝试在Python中生成RFC 3339 UTC时间戳.到目前为止,我已经能够做到以下几点:

>>> d = datetime.datetime.now()
>>> print d.isoformat('T')
2011-12-18T20:46:00.392227
Run Code Online (Sandbox Code Playgroud)

我的问题是设置UTC偏移量.

根据该文件,在类方法datetime.now([tz]),有一个可选的tz参数,其中tz must be an instance of a class tzinfo subclass,和datetime.tzinfoan abstract base class for time zone information objects.

这就是我迷路的地方 - 为什么tzinfo是一个抽象类,我该如何实现呢?


(注意:在PHP中它很简单timestamp = date(DATE_RFC3339);,这就是为什么我无法理解为什么Python的方法如此错综复杂......)

python datetime iso8601 rfc3339

51
推荐指数
5
解决办法
4万
查看次数

Python - 将日期转换为ISO 8601

在Python中,我如何转换这样的字符串:

星期四,2010年12月16日12:14:05 +0000

符合ISO 8601格式,同时保留时区?

请注意,原始日期是字符串,输出也应该是字符串,不是datetime或类似的.

不过,我使用第三方库没有问题.

python datetime iso8601

47
推荐指数
2
解决办法
5万
查看次数

有没有一种简单的方法将ISO8601时间戳转换为格式化的NSDate?

如果我使用以下代码:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];   
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm"];
NSDate *myDate = [dateFormatter dateFromString:@"2010-01-28T15:22:23.863"];
NSLog(@"%@", [dateFormatter stringFromDate:myDate]);
Run Code Online (Sandbox Code Playgroud)

它成功地转换为一个Date对象,但是,我似乎无法以任何其他方式格式化它yyyy-MM-dd'T'HH:mm,即记录的是什么2010-01-28T15:22:23

如果我更改dateFormat以说[dateFormatter setDateFormat:@"yyyy-MMMM-d'T'HH:mm"];Date对象为null ...

所以我的最终问题是如何格式化SQL数据库中的ISO8601时间戳,以便使用,例如,NSDateFormatterMediumStyle返回"2010年1月1日"?

objective-c iso8601 nsdate nsdateformatter

46
推荐指数
6
解决办法
3万
查看次数