ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

mailmsgdate関数で取得した値を文字列変換

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-11-10 16:28
Tanda  長老   投稿数: 2151
d_anさん、

障害のひとつの切り分け手段ですが、関数を入れ子にせずに、
一旦2つの式に分けて、2回で変換処理を行ってみたらどうで
しょうね。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-11-10 14:39
ISHIJIMA  長老 居住地: 静岡県  投稿数: 1827
こちらではmailmsgdate関数で取得するテストはしていませんのでフォーラムで指示された文字列を使用してテストしました。
テストした文字列と違うからだと思います。


投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2016-11-10 13:48
d_an  一人前   投稿数: 91
ISHIJIMA様

mailmsgdate関数だと、うまくできないようですね。
mailmsgdate関数で取得した値を日付変換して、
(Tanda様の言われた通り無駄な変換を除去)
日付形式YYYY/MM/DDで表示すると
Dが1桁の場合は正しく表示されませんでした。(0000/00/00)

日付変換 Dval(mailmsgdate(X),'WWW, DD MMM YYYY')

投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-11-10 12:55
ISHIJIMA  長老 居住地: 静岡県  投稿数: 1827
1つの書式でできましたよ・・・
mailmsgdate関数ではなく下記の文字を変換した場合ですが

"Wed, 9 Nov 2016"

"Thu, 10 Nov 2016"

'WWW, DD MMM YYYY'
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-11-10 12:26
d_an  一人前   投稿数: 91
Tanda様

無駄な変換だったようですね。

修正いたしました。
ご教授いただきありがとうございます。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-11-10 12:01
Tanda  長老   投稿数: 2151
d_anさん、

> さらにこの値を格納した変数(文字列)に対して、
> 日付変換→文字変換→日付変換を行い

とのことですが、一旦、日付の値として取得した後は、あとは何も
しなくてもいいですよ。「文字変換→日付変換」の部分は不要です。

なぜならば、Magicは日付データを内部的には数値の値で保持して
おりますので、画面表示の属性さえ変えてやれば、無変換のままで、
すべての形式の表示が可能だからです。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2016-11-10 10:54
d_an  一人前   投稿数: 91
'WWW, DD MMM YYYY'だと、
Dが1桁の際に0000/00/00となってしまいます。

なので条件でDが1桁のとき、2桁のときでそれぞれ
処理を変更するようにしたらできました。

Mailmsgdate(X)の戻り値(文字列)で、Dのとき→WWW, D MMM YYYY
DDのとき→WWW, DD MMM YYYY

とりあえずこの方法で進めようと思います。

色々とご回答いただきありがとうございました。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-11-10 10:27
ISHIJIMA  長老 居住地: 静岡県  投稿数: 1827
'WWW, DD MMM YYYY'で問題ないと思います。
DDの前に空白1つ入れました。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-11-10 10:16
d_an  一人前   投稿数: 91
Wed, 9 Nov 2016 18:34:57 ・・・を上記内容で修正して
確認したところ問題なくできましたが、
本日 Thu, 10 Nov 2016 ・・・の日付を代入して変換したら
0000/00/00となってしまい、
うまくできませんでした。

日が2桁の場合、1ケタの場合で両方うまく取得できるようにするには
どうしたら良いのでしょうか。
どなたかご教授ください。
よろしくお願いします。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-11-9 19:08
ISHIJIMA  長老 居住地: 静岡県  投稿数: 1827
DVal('Wed, 9 Nov 2016 18:34:57 +0900 (JST)','WWW,DD MMM YYYY')で日付に代入したらうまくいきました。

DをDDにするだけかな
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 .4 .5 .6 .7 | 投稿日時 2016-11-9 18:58
d_an  一人前   投稿数: 91
皆様

表題の件で教えてください。
mailmsgdate関数で日付(文字列)取得した際に、
以下値が取得できました。

Wed, 9 Nov 2016 18:34:57 +0900 (JST)

さらにこの値を格納した変数(文字列)に対して、
日付変換→文字変換→日付変換を行い
※一度 WWW, D MMM YYYY形式に変換してからYYYY/MM/DDにしないと
日付がゼロで取得されてしまったため、こんな面倒な変換をしています

DVal(DStr(DVal(MailMsgDate(T),'WWW, D MMM YYYY'),'YYYY/MM/DD'),'YYYY/MM/DD')


この変換を行うと、
日付が2016/11/09で取得してほしいのですが
なぜか2016/11/01となってしまいます。

どなたか原因を教えてください。
よろしくお願いします。

投票数:0 平均点:0.00

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約