天道酬勤,学无止境

strptime

strptime in c with timezone offsets

I'm having trouble finding a way to parse the timezone out of strings like the following: "Thu, 1 Sep 2011 09:06:03 -0400 (EDT)" What I need to do in the larger scheme of my program is take in a char* and convert it to a time_t. The following is a simple test program I wrote to try and figure out if strptime was accounting for timezone at all, and it doesn't appear to be (when this test program executes all the printed numbers are the same when they should differ). Suggestions? I also tried to use the GNU getdate and getdate_r, because that looks like a better option for possibly flexible

2021-06-15 16:33:14    分类:问答    c   timezone   getdate   strptime   timezone-offset

Using strptime %z with special timezone format

I am working with .csv data that was exported from Teradata. Several columns were originally timestamps with timezones, so after loading the .csv in R I'd like to convert these columns (which are loaded as strings) to POSIXlt or POSIXct. I am using strptime, but the format of the timezone from the .csv file does not match what strptime is expecting. For example, it expects -0400 but the .csv has the format -04:00 where a colon separates the hours and minutes. I can remove the colon, but this is an extra step and complication I'd like to avoid if possible. Is there a way to tell strptime to use

2021-06-14 10:03:15    分类:问答    r   timezone   strptime   string-to-datetime

Parsing date and timestamps in Python with time.strptime format

My cloud server logs time in this format: [17/Dec/2011:09:48:49 -0600] To read it into Python variables, I can say: >>>str = '17/Dec/2011:09:48:49 -0600' >>>import time >>>print time.strptime(str,"%d/%b/%Y:%H:%M:%S -0600") Result: time.struct_time(tm_year=2011, tm-mon=12, tm=mday=17, tm_hour=9, tm_min=48, tm_sec=49, tm_wday=5, tm_yday=351, tm_isdst=-1) or I can try >>>mytime = time.strptime(str,"%d/%b/%Y:%H:%M:%S -0600") >>>print mytime.tm_hour Result: 9 What does the -0600 do? I expected it to adjust the hour value in the date time object? Is there a wildcard to use instead of hard-coding the

2021-06-05 19:32:23    分类:问答    python   time   timezone   strptime

Converting time format to numeric with R

In most cases,we convert numeric time to posixct format using R. However, sometimes, we want to compare which time point is earlier, then we would prefer the numeric time format. Thus, it's quite practical question to convert time format to numeric. For example,I have the data format like "2001-03-13 10:31:00", begin <- "2001-03-13 10:31:00" Using R, I want to figure out how to covert it into a numeric, e.g. the Julian time, something like the passing seconds between 1970-01-01 00:00:00 and 2001-03-13 10:31:00. Do you have any suggestions? The Julian calendar began in 45 BC (709 AUC) as a

2021-06-05 08:26:57    分类:问答    r   time   numeric   strptime   posixct

C : 在 strptime 中验证(C : Validation in strptime)

问题 C 中的 strptime() 函数无法检测无效日期。 例如:2011-02-31、2011-04-31。 此问题是否有任何其他功能或解决方法 回答1 使用strptime后,您可以使用mktime来规范化您的结构。 struct tm ltm = {0}; char buf[] = "2011-02-31"; puts(buf); strptime(buf, "%Y-%m-%d", &ltm); mktime(&ltm); strftime(buf, sizeof(buf), "%Y-%m-%d", &ltm); puts(buf); 上面的示例将产生以下输出: 2011-02-31 2011-03-03 如果mktime之前和之后的字符串不匹配,则您知道输入字符串不是有效日期。 如果需要知道哪个字段无效,可以在调用mktime之前保存ltm结构的副本。 然后,您可以检查日期 ( tm_mday )、月份 ( tm_mon ) 或年份 ( tm_year ) 是否为无效格式。 对于tm_mon , 0是一月, 11是十二月。 对于tm_year ,它是自1900年以来的1900 。 请记住在验证 2 月的月份日期时考虑闰年。

2021-06-03 06:06:31    分类:技术分享    c   validation   strptime

日期时间转换并仅提取时间(Date time conversion and extract only time)

问题 想要将Time的类更改为POSIXlt并仅提取小时,分钟和秒 str(df3$Time) chr [1:2075259] "17:24:00" "17:25:00" "17:26:00" "17:27:00" ... 使用了strptime函数 df33$Time <- strptime(df3$Time, format = "%H:%M:%S") 这给出了附加的日期/时间 > str(df3$Time) POSIXlt[1:2075259], format: "2015-08-07 17:24:00" "2015-08-07 17:25:00" "2015-08-07 17:26:00" ... 想要仅提取时间而不更改POSIXlt类。 使用strftime函数 df3$Time <- strftime(df3$Time, format = "%H:%M:%S") 但这会将类转换回“ char”- > class(df3$Time) [1] "character" 我该如何在类设置为POSIX或数字的情况下提取时间... 回答1 如果您的数据是 a <- "17:24:00" b <- strptime(a, format = "%H:%M:%S") 您可以使用lubridate以获得类integer的结果 library(lubridate) hour(b) minute

2021-06-01 17:29:59    分类:技术分享    r   datetime   strptime

使用R中的strptime()从字符串中提取时间,并返回NA(Extracting time from character string with strptime() in R, returning NA)

问题 我正在尝试从R中的字符串中提取时间,因此无法停止获取NA。 我已经尝试过多种正则表达式标签的变体,但似乎无法解决这个简单的问题。 任何帮助/说明,不胜感激。 这是我的示例代码: > x [1] "2/7/2013 7:43" > class(x) [1] "character" > z <- strptime(x, "%H:%M") > z [1] NA 回答1 R不知道您的字符串是日期时间。 因此,首先使它成为: y <- strptime(x, format='%m/%d/%Y %H:%M') 如果您只是想获取日期,则可以执行以下操作: strptime(x, '%m/%d/%Y') 因为strptime会丢弃格式字符串之后的所有多余字符,但是由于该函数不知道从何处开始,因此您无法获取结尾的%H:%M 。 一旦它是适当的日期时间类,就可以对其进行操作: strftime(y, '%H:%M') 我更喜欢使用as.POSIXlt而不是strptime和format而不是strftime ...,但是它们大致相等。 回答2 如果您的目标是获取带时间的字符串,则可以在sub使用正则表达式。 如果对没有日期信息的字符串使用strptime ,则使用今天的日期。 x <- "2/7/2013 7:43" x2 <- sub(".* ", "", x) # [1] "7:43"

2021-05-24 20:02:48    分类:技术分享    regex   r   date   time   strptime

将Unicode转换为正确的日期时间strptime格式(Convert unicode to datetime proper strptime format)

问题 我正在尝试将unicode对象转换为datetime对象。 我通读了以下文档:http://docs.python.org/2/library/time.html#time.strptime 并尝试 datetime.strptime(date_posted, '%Y-%m-%dT%H:%M:%SZ') 但我收到错误消息ValueError: time data '2014-01-15T01:35:30.314Z' does not match format '%Y-%m-%dT%H:%M:%SZ' 关于正确格式的任何反馈? 我感谢您的时间和专业知识。 回答1 您可以解析微秒: from datetime import datetime date_posted = '2014-01-15T01:35:30.314Z' datetime.strptime(date_posted, '%Y-%m-%dT%H:%M:%S.%fZ') 回答2 一种选择是让dateutil完成这项工作: >>> from dateutil import parser >>> parser.parse('2014-01-15T01:35:30.314Z') datetime.datetime(2014, 1, 15, 1, 35, 30, 314000, tzinfo=tzutc())

2021-05-24 17:50:52    分类:技术分享    python   django   datetime   unicode   strptime

python将日期时间格式的字符串转换为秒(python convert datetime formatted string to seconds)

问题 我正在尝试将日期字符串解码为新纪元,但是我很难获取时区。 这是Amazon S3密钥的最后修改日期。 time.strptime(key.last_modified, '%Y-%m-%dT%H:%M:%S.%Z') ValueError: time data u'2013-10-20T00:41:32.000Z' does not match format '%Y-%m-%dT%H:%M:%S.%Z' 如果我摆脱了时区(.000Z),它可以工作,但是我也需要时区。 回答1 .000Z不被识别.000Z区偏移量。 实际上,您有一个毫秒和一个时区( Z为UTC),并且正式地, time.strptime()解析器无法处理毫秒。 在某些平台上, %f将解析微秒部分,然后丢弃信息。 但是,datetime.datetime.strptime()类方法可以,但是不能是时区。 将Z解析为文字,它可以工作: from datetime import datetime datetime.strptime(key.last_modified, '%Y-%m-%dT%H:%M:%S.%fZ') 演示: >>> from datetime import datetime >>> import time >>> example = u'2013-10-20T00:41:32.000Z' >>>

2021-05-21 20:46:57    分类:技术分享    python   datetime   epoch   strptime

日志的可排序,可读和标准时间格式(Sortable, readable and standard time format for logs)

问题 日志中的时间戳格式 大多数日志行都包含时间戳和事件描述: [When] [What] 例如: [23/Jul/2013:19:35:11 +0000] Processing started. [23/Jul/2013:19:36:11 +0000] Processed 1000 items. [23/Jul/2013:19:37:11 +0000] Processing finished successfully. 我正在尝试为我的日志行找到标准时间戳。 我的标准是: 可读性强。 我想轻松地了解事件何时发生。 按字母顺序可排序。 当我grep从几个文件的事件和排序它们使用POSIX sort ,甚至字/ Excel中,我想字母排序坚持按时间顺序排序。 例如, [23/Jul/2012:19:35:11 +0000]和[22/Jul/2013:19:35:11 +0000]无法排序-2013行将出现在2012行之前。 可以由所有通用语言轻松解析。 如果日志是由脚本处理的,则应该使用标准的strptime轻松地解析时间戳。 到目前为止,我找到的唯一标准是ISO_8601,它具有许多变体(例如2007-04-05T14:30Z和2007-03-01T13:00:00Z ),并且缺少对数行事件的明确标准。 您能为日志行推荐标准的时间戳格式吗? 回答1 @JF Sebestian

2021-05-20 01:17:29    分类:技术分享    sorting   datetime   logging   strptime