在 Javascript 中,Date.prototype.toISOString给出 ISO 8601 UTC 日期时间字符串:
new Date().toISOString()
// "2014-07-24T00:19:37.439Z"
Run Code Online (Sandbox Code Playgroud)
是否存在行为与 Javascript 相匹配的 Python 函数?
尝试:
Python 的datetime.datetime.isoformat类似,但不完全相同:
datetime.datetime.now().isoformat()
// '2014-07-24T00:19:37.439728'
Run Code Online (Sandbox Code Playgroud)
使用pytzI 至少可以使 UTC 明确:
pytz.utc.localize(datetime.now()).isoformat())
// '2014-07-24T00:19:37.439728+00:00'
Run Code Online (Sandbox Code Playgroud) 在使用改造并尝试读取这样的日期时,我无法正确设置日期格式:
2015-08-29T11:22:09.815479Z
Run Code Online (Sandbox Code Playgroud)
我设置的GSON转换器是这样的:
GsonConverter gsonConverter = new GsonConverter(
new GsonBuilder()
.setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSz")
.create()
);
Run Code Online (Sandbox Code Playgroud)
什么问题的线索?
我意识到 JSON 没有真正的日期格式,考虑到 JavaScript 使用的是 ISO 8601,因此使用 ISO 8601 是一个不错的选择。持续时间呢?JavaScript 没有内置格式。
P3Y6M4DT12H30M5S我在野外没有看到太多使用。它看起来也非常冗长且难以阅读。据我所知,如果您需要,它也不支持毫秒。TimeSpan类型输出1.02:03:04.0050000为 1 天、2 小时、3 分钟、4 秒和 5 毫秒。我几乎从未见过野外的第一种格式。第二个对我来说似乎更直观,但我担心它在 .NET 之外并不为人所知。第三种格式可能是最跨平台友好的,但完全不是人类可读的。
我有一个SystemTime变量,我想从那个日期获得 ISO 8601 格式。
我有一个JS日期,由Dojo转换为RFC822格式.函数调用--dojo.date.toRfc3339(jsDate)生成以下日期 - 2007-02-26T20:15:00 + 02:00.
我有一个应用程序使用Java日期SimpleDateFormat来解析上面生成的日期.由于时区,我在解析此日期格式时遇到问题.我试图使用
YYYY-MM-DD'T'hh:MM:SSZ
这失败了,因为时区的'Z'不期望':'字符.有谁知道如何指定一个模式来处理带有':'的RFC822日期?
修订:
感谢您正确解释我想要做的事情:)我想说的是日期是在RFC3339中生成的,我需要RFC822.看起来我将不得不重写JavaScript.我希望我不必这样做,并且可以指定日期格式模式而不必修改任何Java代码,因为日期格式只是注入到应用程序的Spring bean中.
只是为了完整性,有没有办法在日期格式表达式中指定忽略序列中的字符(不进行字符串操作/替换)?在这种情况下,我会说忽略任何':'或者只是忽略所有时区?
在ISO 8601中,持续时间以格式给出P[n]Y[n]M[n]DT[n]H[n]M[n]S.
例子:
20秒:
PT20.0S
Run Code Online (Sandbox Code Playgroud)
一年,2个月,3天,4小时,5分钟,6秒:
P1Y2M3DT4H5M6S
Run Code Online (Sandbox Code Playgroud)
题:
给定一个包含iso 8601格式持续时间的字符串.我想获得该持续时间的总秒数.标准C++ 11中推荐的方法是什么?
备注:
例如,在boost DateTime中有ptime from_iso_string(std :: string),这里不适合.没有手工制作正则表达式有类似的方法吗?
我希望系统日期转换为ISO 8601格式.码:
my $now = time();
my $tz = strftime("%z", localtime($now));
$tz =~ s/(\d{2})(\d{2})/$1:$2/;
print "Time zone *******-> \"$tz\"\n";
# ISO8601
my $currentDate = strftime("%Y-%m-%dT%H:%M:%S", localtime($now)) . $tz;
print "Current date *******-> \"$currentDate\"\n";
Run Code Online (Sandbox Code Playgroud)
目前的输出是:
Time zone *******-> "-04:00"
Current date *******-> "2014-06-03T03:46:07-04:00"
Run Code Online (Sandbox Code Playgroud)
我希望当前日期的格式为"2014-07-02T10:48:07.124Z",这样我就可以计算出两者之间的差异.
我实际上JQ1.5在一个Windows 10环境下使用转换几个json文件以导入到MS SQL数据库中。部分数据已格式化UNIX timestamp,我需要将这些数据转换为 ISO 8601 格式。
以下命令我实际用于数据转换:
jq '
[
{ nid, title, nights, zone: .zones[0].title} +
(.sails[] | { sails_nid: .nid, arrival, departure } ) +
(.sails[].cabins[] |
{ cabintype: .cabinType.kindName,
cabinid: .cabinType.nid,
catalogPrice,
discountPrice,
discountPercentage,
currency
}
)
]
' C:\Import\dreamlines_details.json > C:\Import\import_sails.json
Run Code Online (Sandbox Code Playgroud)
到达和离开是 Unix 时间格式的数据。
数据:
[
{
"nid": 434508,
"title": "Die schönsten Orte unserer Welt",
"nights": 121,
"zone": "Weltreise",
"sails_nid": 434516,
"arrival": 1525644000,
"departure": 1515193200,
"cabintype": "Innenkabine", …Run Code Online (Sandbox Code Playgroud) 给定datetime.timedelta,如何将其转换为ISO 8601持续时间格式的字符串?
当然,
>>> iso8601(datetime.timedelta(0, 18, 179651))
'PT18.179651S'
Run Code Online (Sandbox Code Playgroud) 有没有办法将以 ISO 8601 句点格式给出的字符串转换为人类可读的格式,并翻译为指定的语言?\n示例:
\nP1W-- en-->1 WeekP2W-- en-->2 WeeksP1W-- pl-->1 Tydzie\xc5\x84P2W-- pl-->2 Tygodnie我正在寻找一个已经实施的解决方案,而无需定义周期翻译。
\n