文字列30-Jul-17
をどのようにして日付形式07/30/17
に変換できますか?日付変換のVisual FoxPro文字列
1
A
答えて
2
VFPには、月の短縮文字列(または完全な月名)を解析する方法が組み込まれているとは思いません。それが私だったら、私はCASEステートメントをそれぞれの短縮月に使います。少しあなたは関数としてそれを作ると、繰り返し呼び出すことができ、スティーブが提供するものに拡張すること
lcStringDate = "30-Jul-17"
lcDay = LEFT(lcStringDate, 2)
lcMonth = SUBSTR(lcStringDate, 4, 3)
lcYear = "20"+RIGHT(lcStringDate, 2)
*!* Here you'd need to have code to convert abbreviated
*!* month to a numeric month
DO CASE
CASE lcMonth = "Jan"
lcNumericMonth = "1"
CASE lcMonth = "Feb"
lcNumericMonth = "2"
.
.
.
ENDCASE
?CTOD(lcNumericMonth+"/"+lcDay+"/"+lcYear)
*!* this would output "07/30/17" if SET CENTURY is OFF
*!* this would output "07/30/2017" if SET CENTURY is ON
1
...
lcDate = "30-Jul-17"
? DMYToDate(lcDate)
lcDate = "15-August-17"
? DMYToDate(lcDate)
lcDate = "29-Feb-17" && No such feb 29, 2017
? DMYToDate(lcDate)
lcDate = "32-Mar-17" && no month 32 days
? DMYToDate(lcDate)
FUNCTION DMYToDate
LPARAMETERS lcTryDate
local lnDay, lnYear, lcMonth, tmpDate, ldNewDate
lnDay = INT(VAL(LEFT(lcTryDate, 2)))
lnYear = 2000 + INT(VAL(RIGHT(lcTryDate, 2)))
lcMonth = SUBSTR(lcTryDate, 4, 3)
*/ Cycle through each month with arbitrary start date...
tmpDate = DATE(2000,1,1)
DO WHILE YEAR(tmpDate) < 2001
IF ATC(lcMonth, CMONTH(tmpDate)) = 1
EXIT
ENDIF
tmpDate = GOMONTH(tmpDate, 1)
ENDDO
IF YEAR(tmpDate) > 2000
*/ No such month found, return empty date.
RETURN CTOD("" )
ENDIF
TRY
ldNewDate = DATE(lnYear, MONTH(tmpDate), lnDay)
CATCH
ldNewDate = CTOD("")
ENDTRY
RETURN ldNewDate
ENDFUNC
0
はこれを試してみてください:
「」あなたの日付文字列である
DATE(2000+VAL(SUBSTR(a,8,2)),int((AT(SUBSTR(UPPER(a),4,3),"JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC")-1)/3)+1,VAL(SUBSTR(a,1,2)))
関連する問題
- 1. 日付の文字列への変換
- 2. 文字列の日付の変換
- 3. Blackberry Java日付変換の文字列
- 4. Grails - 日付変換時の文字列
- 5. 変換JSONの日付文字列
- 6. Java:文字列を日付に変換
- 7. 変換日付文字列スウィフト
- 8. Excel:日付文字列変換の文字列
- 9. Androidの日付文字列を日付オブジェクトに変換する
- 10. 文字列を日付に変換 - 日付検証
- 11. Excel VBA - 日付文字列を日付に変換する
- 12. 日付文字列を日付に変換する
- 13. 私はvb.netで文字列に日付値を変換するVisual Basic .NETの
- 14. GTMのカスタムJavascript変数日付(文字列)を日付に変換する
- 15. Rの文字を日付に変換
- 16. この日付文字列を長い文字列に変換するには?
- 17. 文字列をjava(複合文字列)の日付に変換する
- 18. QMLの日付文字列を時刻文字列に変換する
- 19. Epplusでの変換文字列の日付をExcelの日付として
- 20. AM/PMの日付文字列をjavascriptの日付オブジェクトに変換する
- 21. oracle10gの文字列の日付を日付形式に変換する方法
- 22. Python:絶対日付スタンプへの相対日付文字列の変換
- 23. 日付の文字列を現在の日付に変換する
- 24. Sparkデータフレーム列を文字列から日付に変換する
- 25. Java:タイムゾーン変数で日付を文字列に変換する
- 26. 日付の文字列を日付に変換するgrails rich-ui datechooser
- 27. フォーマットされた日付文字列をXPathの日付値に変換する
- 28. 日付文字列をJavascriptの適切な日付に変換する
- 29. 文字列を有効な日付時刻文字列に変換したい
- 30. Grails - 文字列を日付に変換してから文字列に戻す
ありがとうございます。私はもっと簡単な方法を望んでいましたが、これはうまくいくでしょう。 – Nick