質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
DateTime

多くのプログラミング言語におけるDateTimeオブジェクトは、日付と時間に関する演算と出力を行います。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

6191閲覧

twitter api created_atの整形

syu-yu

総合スコア24

DateTime

多くのプログラミング言語におけるDateTimeオブジェクトは、日付と時間に関する演算と出力を行います。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

3クリップ

投稿2018/03/23 05:48

編集2018/03/23 06:34

twitter apiから取得した時間が
Fri Mar 23 05:26:17 +0000 2018
このような形となり、DBへの保存ができません。

不明な点がこの時間を数字のみの羅列への変換のコードです。

現状はtweet["created_at"]の状態です。
よろしくお願いします。

追記
言語はpython
twitter取得のlibraryはOAuth1Session
OSはmac
DBはMysql
となります。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2018/03/23 05:53 編集

お使いのプログラミング言語とデータベースの種類は何でしょうか? 質問を編集して追記してください。
Udomomo

2018/03/23 05:56

なんの言語・なんのtwitterAPI用ライブラリ(例えばpythonならpython-twitterなど)を使っているかを明記してください。また、DBにはどのような型で保存することにしているのかも書いてください。
Udomomo

2018/03/23 05:57

どの言語でも、基本的には文字列からデータを抜き出して別のデータ型に変換する処理が必要です。ライブラリによっては、この処理を行ってくれるメソッドをつけているものもあります。
LouiS0616

2018/03/23 06:11

『数字のみの羅列』と言うとパターンはいくらでもあるのですが、具体的にどのように成形したいのでしょうか?また、適宜タグを編集してください。
syu-yu

2018/03/23 06:33

2017-11-12 09:55:28 のようなパターンにしたいです。タグの件承知しました。
guest

回答1

0

ベストアンサー

自力でパースするんならこんな感じでしょうか。
Python 標準ライブラリ - datetime - strftime() と strptime() の振る舞い

Python

1from datetime import datetime 2 3tweet = { 4 'create_at': 'Fri Mar 23 05:26:17 +0000 2018' 5} 6 7def make_convert_date_format(src_format, dst_format): 8 def convert_date_format(s): 9 return datetime.strftime( 10 datetime.strptime(s, src_format), 11 dst_format 12 ) 13 14 return convert_date_format 15 16 17convert_date_format = make_convert_date_format( 18 '%a %b %d %H:%M:%S %z %Y', '%Y-%m-%d %H:%M:%S' 19) 20 21src = tweet['create_at'] 22dst = convert_date_format(src) 23 24print(dst, type(dst))

実行結果 Wandbox

2018-03-23 05:26:17 <class 'str'>

Twitter APIやSQLの機能を用いてもっと簡単に書く余地があるかもしれませんが。
あるいはtimeオブジェクトを経由した方が良いかも。

コメントを受けて

読み込んで → タイムゾーンを修正 → 出力 とかですかね。

Python

1from datetime import datetime 2 3tweet = { 4 'create_at': 'Fri Mar 23 05:26:17 +0000 2018' 5} 6 7dt = datetime.strptime( 8 tweet['create_at'], '%a %b %d %H:%M:%S %z %Y' 9) 10dt = dt.astimezone() 11 12dst = datetime.strftime( 13 dt, '%Y-%m-%d %H:%M:%S' 14) 15 16print(dst, type(dst))

上記のconvert_date_format関数に放り込んでもいいっちゃいいです。

Python

1def make_convert_date_format(src_format, dst_format): 2 def convert_date_format(s): 3 return datetime.strftime( 4 datetime.strptime( 5 s, src_format 6 ).astimezone(), 7 dst_format 8 ) 9 10 return convert_date_format

ただ、そうなると関数の役割が肥大化していくので悩みどころ。

投稿2018/03/23 07:00

編集2018/03/26 06:10
LouiS0616

総合スコア35660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

syu-yu

2018/03/26 03:02

@LouiS0616さん何度もご回答ありがとうございます! また、返信遅くなり申し訳ありません。。。 質問がございまして、時間を出力結果に9時間足して日本時間にしたい場合はどのようにすればよろしいでしょうか? 調べても、libraryが自動的にやってくれることが多く、わかりませんでした。 お手数しますが、御回答頂けると嬉しいです。
LouiS0616

2018/03/26 05:48

Python上で対応するなら、datetimeオブジェクトのastimezoneメソッドを呼べば良いです。 ロケールが正しく設定されているなら引数は省略できるはず。
syu-yu

2018/03/26 07:44

ありがとうございます! まだ完全に理解できていないので、教えて頂いた「Python 標準ライブラリ - datetime - strftime() と strptime() の振る舞い」のページで自分でしっかり理解したいと思います!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問