标签: strptime

使用am/pm解析时间戳

我有一个格式化时间戳的文件 25/03/2011 9:15:00 p.m.

如何使用strptimeas.POSIXct?将此文本解析为Date-Time类?

这几乎是有效的:

> as.POSIXct("25/03/2011 9:15:00", format="%d/%m/%Y %I:%M:%S", tz="UTC")
[1] "2011-03-25 09:15:00 UTC"
Run Code Online (Sandbox Code Playgroud)

这是什么不起作用,但我想工作:

> as.POSIXct("25/03/2011 9:15:00 p.m.", format="%d/%m/%Y %I:%M:%S %p", tz="UTC")
[1] NA
Run Code Online (Sandbox Code Playgroud)

我在MS Windows上使用R版本2.13.2(2011-09-30).我的工作区域是"C":

Sys.setlocale("LC_TIME", "C")
Run Code Online (Sandbox Code Playgroud)

timestamp r strptime

9
推荐指数
1
解决办法
6399
查看次数

strptime无法正确识别AM/PM字符串

我在使用函数strptime()时遇到了一些意想不到的事情.我所拥有的日期格式包括"1/22/2013 11:00:00 PM".我使用的格式是"%m /%d /%Y%I:%M:%S%p".

代码如下.

strptime("1/22/2013 11:00:00 p.m",format="%m/%d/%Y %I:%M:%S %p")
[1] NA
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用

strptime("1/22/2013 11:00:00 pm",format="%m/%d/%Y %I:%M:%S %p")
[1] "2013-01-22 23:00:00"
Run Code Online (Sandbox Code Playgroud)

我得到了适当的结果.

因此,该特征缺乏检测pm及其变化(例如pm等)以代替PM或pm.这是R中的错误吗?

RI的版本在Windows 7 32位上使用R.14.2

r strptime

8
推荐指数
2
解决办法
1万
查看次数

使用特殊时区格式的strptime%z

我正在使用从Teradata导出的.csv数据.有几列原本是带时区的时间戳,所以在加载R中的.csv之后,我想将这些列(作为字符串加载)转换为POSIXlt或POSIXct.我正在使用strptime,但.csv文件中的时区格式与strptime预期的不匹配.例如,它希望-0400但.csv具有-04:00冒号分隔小时和分钟的格式.

我可以删除结肠,但这是一个额外的步骤和复杂性我想尽可能避免.有没有办法让strptime时区(%z)使用不同的格式?

这是一个例子:

## Example data:
x <- c("2011-10-12 22:17:13.860746-04:00", "2011-10-12 22:17:13.860746+00:00")
format <- "%Y-%m-%d %H:%M:%OS%z"

## Doesn't work:
strptime(x,format)
## [1] NA NA

## Ignores the timezone:
as.POSIXct(x)
## [1] "2011-10-12 22:17:13 EDT" "2011-10-12 22:17:13 EDT"

## Remove the last colon:
x2 <- gsub("(.*):", "\\1", x)
x2
## [1] "2011-10-12 22:17:13.860746-0400" "2011-10-12 22:17:13.860746+0000"

## This works, but requires extra processing (removing the colon)
strptime(x2,format)
## [1] "2011-10-12 …
Run Code Online (Sandbox Code Playgroud)

timezone r strptime string-to-datetime

8
推荐指数
1
解决办法
2898
查看次数

编译器在使用strptime函数时会收到警告(C)

键入man strptime它,这个函数需要声明_XOPEN_SOURCE并包含time.h头.我做的.但是,当我尝试编译我的代码时,我得到:

./check.c:56:警告:隐式声明函数'strptime'

看看我的代码:

int lockExpired(const char *date, const char *format, time_t current) {
        struct tm *tmp = malloc(sizeof(struct tm *));
        time_t lt;
        int et;

        strptime(date, format, tmp);
        lt = mktime(tmp);
        et = difftime(current, lt);

        if (et < 3600)
                return -et;

        return 1;
}
Run Code Online (Sandbox Code Playgroud)

函数声明也是:

char *strptime(const char *s, const char *format, struct tm *tm);

谁能告诉我我的问题来自哪里?

c strptime compiler-warnings

8
推荐指数
1
解决办法
8653
查看次数

未转换的数据仍然是:Python中的.387000

我的日期时间是我从文本文件中读取的字符串.我想减少额外的毫秒数,但我想首先将它转换为日期时间变量.这是因为它可能采用不同的格式,具体取决于文本文件中的内容.然而,我所尝试的一切都希望我已经知道格式.请看看我在这里尝试的内容:

import time, datetime

mytime = "2015-02-16 10:36:41.387000"
myTime = time.strptime(mytime, "%Y-%m-%d %H:%M:%S.%f")

myFormat = "%Y-%m-%d %H:%M:%S"

print datetime.datetime.fromtimestamp(time.mktime(time.strptime(mytime, myFormat)))
Run Code Online (Sandbox Code Playgroud)

但这给了我这个错误:

File "python", line 10, in <module>
ValueError: unconverted data remains: .387000`
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何做一个正常的日期时间格式?在其他语言中,我可以传递各种格式,然后将其设置为新格式​​而不会出现问题.

python strftime strptime

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

如何在Python中将时间戳转换为字符串

我对以下代码有问题。我收到错误消息“strptime() 参数 1 必须是 str,而不是时间戳”

我想我应该做的是将日期从时间戳转换为字符串,但我不知道该怎么做。

class TweetAnalyzer:

    def tweets_to_data_frame(self,ElonMuskTweets):

        df = pd.DataFrame(data=[tweet.text for tweet in ElonMuskTweets],columns=['Tweets'])

        df['Text length'] = np.array ([len(tweet.text)for tweet in ElonMuskTweets])
        df['Date and time of creation'] = np.array ([tweet.created_at for tweet in ElonMuskTweets])
        df['Likes'] = np.array ([tweet.favorite_count for tweet in ElonMuskTweets])
        df['Retweets'] = np.array ([tweet.retweet_count for tweet in ElonMuskTweets])

        list_of_dates = []   
        list_of_times = []

        for date in df['Date and time of creation']:

            date_time_obj = datetime.strptime(date, '%Y-%m-%d %H:%M:%S') 
            list_of_dates.append(date_time_obj.date())  
            list_of_times.append(date_time_obj.time())

            df['Date'] = list_of_dates
            df['Time'] = list_of_times …
Run Code Online (Sandbox Code Playgroud)

python strptime pandas

8
推荐指数
3
解决办法
5万
查看次数

如何在C中正确检查strptime的有效日期

我正在做以下转换和检查日期,但是,我不确定为什么以下日期保持验证为真.

不会%d只检查[01,31] + leading zeros?有没有更好,更准确的方法呢?

#include <time.h>
#include <stdio.h>
#include <stdlib.h>

int main () {
    struct tm tm; 

    char buffer [80];
    char *str = "29/Jan/2012";
    if (strptime (str, "%Y/%b/%d", &tm) == NULL)
        exit(EXIT_FAILURE);
    if (strftime (buffer,80,"%Y-%m-%d",&tm) == 0)
        exit(EXIT_FAILURE);

    printf("%s\n", buffer); // prints 29-01-20

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c validation date strftime strptime

7
推荐指数
1
解决办法
2611
查看次数

用于Windows 7的spyder中的strptime的Python ImportError

我不能为我的生活弄清楚是什么导致了这个非常奇怪的错误.

我在spyder IDE中为Windows 7运行python 2.7中的脚本.它在一个点上使用datetime.datetime.strptime.我可以运行一次代码并且看起来很好(虽然我还没有完成调试,所以异常已经引发并且还没有正常完成),然后如果我再次尝试运行它,我得到以下内容(仅回溯结束)显示):

文件"C:\ path\to\test.py",第220行,在std_imp
self.data [key] .append(dt.datetime.strptime(string_var,string_format_var))
ImportError:导入_strptime失败,因为导入lockis被保留通过另一个线程.

我没有使用Threading等运行多个线程.让代码超越这一点的唯一方法是完全重启计算机.重启spyder将无法正常工作.网络搜索似乎没有产生任何其他人的线索或迹象.

有谁知道发生了什么?这是某种GIL问题吗?什么是导入锁,为什么一旦我尝试运行代码一次,它似乎阻止我导入datetime模块的这个方法?

python datetime strptime importerror spyder

7
推荐指数
1
解决办法
3433
查看次数

获取错误"要替换的项目数不是替换长度的倍数"

我正在尝试使用该strptime函数将记录转换为日期和时间格式.但是,我不确定为什么我收到错误:

要更换的项目数不是更换长度的倍数.

我尝试使用该length函数检查记录的长度,但两者具有相同的长度.

data <- DT
head(data[6])
#                column
# 1 2014-12-22 23:53:48
# 2 2014-12-22 23:20:34
# 3 2014-12-22 23:20:30
# 4 2014-12-22 23:20:16
# 5 2014-12-22 23:20:07
# 6 2014-12-22 23:05:49

data[,6] <- as.character(data[,6])

temp_file <- matrix(0,nrow=nrow(data))

temp_file[1] <- strptime(data[1, 6],"%F %T")
# Warning message:
# In temp_file[1] <- strptime(data[1, 6], "%F %T") :
#   number of items to replace is not a multiple of replacement length

length(temp_file[1])
# [1] 1

length(data[1,6])
# [1] …
Run Code Online (Sandbox Code Playgroud)

r matrix strptime dataframe

7
推荐指数
1
解决办法
7239
查看次数

Python - 将数组中的字符串转换为日期

我已经从TXT文件中读取了一个字符串数组,并使用这样一行将其保存为一个数组(超过数千个值):

dates = np.genfromtxt('filename.txt', delimiter=";", usecols=(0), dtype=None)
Run Code Online (Sandbox Code Playgroud)

接下来,我想将字符串转换为日期.我试着用这行:

dates2 = dt.datetime.strptime([dates], '"%Y-%m-%d"').date()
Run Code Online (Sandbox Code Playgroud)

但是,我收到了一个错误:

TypeError:必须是字符串,而不是列表

我发现这样的代码工作正常:

data1='"2010-02-28"'
data1_1 = dt.datetime.strptime(data1, '"%Y-%m-%d"').date()
Run Code Online (Sandbox Code Playgroud)

我应该如何处理所描述的问题?

python arrays string date strptime

7
推荐指数
1
解决办法
3万
查看次数