German Android 7 Datetime.Dateparse mit Wochentag?

superscope

Member
Licensed User
Longtime User
Guten Tag,
ich habe probleme mit Datetime.Dateparse. Was mit Android 6 läuft mit Android 7 geht nicht.
Fehler:
*** Service (starter) Create ***
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
main_activity_create (java line: 346)
java.text.ParseException: Unparseable date: "01.11.17 Do"
at java.text.DateFormat.parse(DateFormat.java:358)
at anywheresoftware.b4a.keywords.DateTime.DateParse(DateTime.java:148)
at b4a.example.main._activity_create(main.java:346)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:186)
at b4a.example.main.afterFirstLayout(main.java:102)
at b4a.example.main.access$000(main.java:17)
at b4a.example.main$WaitForLayout.run(main.java:80)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
Dim TimeValue As Long
Dim FirstDayOfMonth As Long
Dim LastDayOfMonth As Long

End Sub

Sub Globals
'These global variables will be redeclared each time the activity is created.
'These variables can only be accessed from this module.

Dim MONATSANFANG, MONATSENDE As String
End Sub

Sub Activity_Create(FirstTime As Boolean)
'Do not forget to load the layout file created with the visual designer. For example:

TimeValue = DateTime.Now
DateTime.DateFormat = "dd.MM.yy c"
Dim TempDay As Long

FirstDayOfMonth = DateTime.DateParse("01" & DateTime.Date(TimeValue).SubString(2))

TempDay = DateTime.DateParse("01" & DateTime.Date(TimeValue).SubString(2))
LastDayOfMonth = DateTime.Add(TempDay,0,1,-1)

MONATSANFANG = DateTime.Date(FirstDayOfMonth)
MONATSENDE = DateTime.Date(LastDayOfMonth)

End Sub

Sub Activity_Resume
Log(MONATSANFANG)
Log (MONATSENDE)

End Sub

ich brauche Ihre Hilfe...
Vielen dank
 

Wolli013

Well-Known Member
Licensed User
Longtime User
DateTime.DateFormat = "dd.MM.yy c"

Lass mal das c weg und teste nochmal
DateTime.DateFormat = "dd.MM.yy"
 

superscope

Member
Licensed User
Longtime User
Erst vielen dank für antworten.
"dd.MM.yy" ohne c geht. Möchte mit Wochentag darum mit c. Mit Android 6 hane bis jetz ohne probleme gebraucht. Wann ich habe neue Handy mit Andraoid 7 geht nicht mehr.
 

DonManfred

Expert
Licensed User
Longtime User

superscope

Member
Licensed User
Longtime User
Danke für antwort.
DateTime.DateFormat = "dd.MM.yy E"
*** Service (starter) Create ***
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
main_activity_create (java line: 351)
java.text.ParseException: Unparseable date: "01.11.17 Fr."
at java.text.DateFormat.parse(DateFormat.java:362)
at anywheresoftware.b4a.keywords.DateTime.DateParse(DateTime.java:148)
at b4a.example.main._activity_create(main.java:351)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:186)
at b4a.example.main.afterFirstLayout(main.java:102)
at b4a.example.main.access$000(main.java:17)
at b4a.example.main$WaitForLayout.run(main.java:80)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
habe auch getesttet leider auch erfolglos...
 

klaus

Expert
Licensed User
Longtime User
Was Du vorhast kann nicht funktionieren, wie es An Schi schon angedeutet hat.
In dieser Zeile
FirstDayOfMonth = DateTime.DateParse("01" & DateTime.Date(TimeValue).SubString(2))
willst du den esten Tag des Monates ermitteln, mit dem heutigen Tagesnamen?
Mit DateTime.Date(TimeValue).SubString(2) bekommst Du für den heutigen TagesNamen und der ist nicht der gleiche wie der erste.
Der heutige Tagesname ist Fr, aber der Tagesname vom 1.11 war Mi !
 

superscope

Member
Licensed User
Longtime User
willst du den esten Tag des Monates ermitteln, mit dem heutigen Tagesnamen?
Hallo klaus, ja genau
komisch ist bis jetz super funktioniert mit android 6 und noch kleine android version. ab androd 7 ging nicht. wenn helfen kannst freue mich sehr.
danke
 

klaus

Expert
Licensed User
Longtime User
Du hast mich scheinbar falsch verstanden.
Der Code in Deinem ersten Post KANN NICHT funktioniern.
In deinem Code, für heute, gibt Du hast diese Zeile: FirstDayOfMonth = DateTime.DateParse("01" & DateTime.Date(TimeValue).SubString(2))
Und "01" & DateTime.Date(TimeValue).SubString(2) gibt für heute: 01.11.17 Fr
Und das ist FALSCH, und gibt deshalb den Fehler !
Richtig sollte es 01.11.17 Mi sein, denn der 1.11 war ein Mittwoch und kein Freitag !!!
Morgen würdest Du mit "01" & DateTime.Date(TimeValue).SubString(2) das bekommen 01.11.17 Sa , weil morgen Samstag ist!

komisch ist bis jetz super funktioniert mit android 6 und noch kleine android version.
Das kann ich nicht glauben !

Dieser Code funktioniert:
B4X:
Sub Activity_Create(FirstTime As Boolean)
    TimeValue = DateTime.Now
    DateTime.DateFormat = "dd.MM.yy"
    Dim TempDay As Long

    FirstDayOfMonth = DateTime.DateParse("01" & DateTime.Date(TimeValue).SubString(2))

    TempDay = DateTime.DateParse("01" & DateTime.Date(TimeValue).SubString(2))
    LastDayOfMonth = DateTime.Add(TempDay,0,1,-1)

    DateTime.DateFormat = "dd.MM.yy c"
    MONATSANFANG = DateTime.Date(FirstDayOfMonth)
    MONATSENDE = DateTime.Date(LastDayOfMonth)
End Sub
DateTime.DateFormat = "dd.MM.yy E" gibt : 01.11.17 Mi.
DateTime.DateFormat = "dd.MM.yy c" gibt : 01.11.17 Mi ohne dem letzten Punkt.
DateTime.DateFormat = "dd.MM.yy EEEE" gibt: 01.11.17 Mittwoch
 

superscope

Member
Licensed User
Longtime User
Du hast mich scheinbar falsch verstanden.
Der Code in Deinem ersten Post KANN NICHT funktioniern.
In deinem Code, für heute, gibt Du hast diese Zeile: FirstDayOfMonth = DateTime.DateParse("01" & DateTime.Date(TimeValue).SubString(2))
Und "01" & DateTime.Date(TimeValue).SubString(2) gibt für heute: 01.11.17 Fr
Und das ist FALSCH, und gibt deshalb den Fehler !
Richtig sollte es 01.11.17 Mi sein, denn der 1.11 war ein Mittwoch und kein Freitag !!!
Morgen würdest Du mit "01" & DateTime.Date(TimeValue).SubString(2) das bekommen 01.11.17 Sa , weil morgen Samstag ist!


Das kann ich nicht glauben !

Dieser Code funktioniert:
B4X:
Sub Activity_Create(FirstTime As Boolean)
    TimeValue = DateTime.Now
    DateTime.DateFormat = "dd.MM.yy"
    Dim TempDay As Long

    FirstDayOfMonth = DateTime.DateParse("01" & DateTime.Date(TimeValue).SubString(2))

    TempDay = DateTime.DateParse("01" & DateTime.Date(TimeValue).SubString(2))
    LastDayOfMonth = DateTime.Add(TempDay,0,1,-1)

    DateTime.DateFormat = "dd.MM.yy c"
    MONATSANFANG = DateTime.Date(FirstDayOfMonth)
    MONATSENDE = DateTime.Date(LastDayOfMonth)
End Sub
DateTime.DateFormat = "dd.MM.yy E" gibt : 01.11.17 Mi.
DateTime.DateFormat = "dd.MM.yy c" gibt : 01.11.17 Mi ohne dem letzten Punkt.
DateTime.DateFormat = "dd.MM.yy EEEE" gibt: 01.11.17 Mittwoch

Glaub mir es funktioniert mit Android 6
2017-11-03_161642.jpg 2017-11-03_161705.jpg

Android 7
2017-11-03_161341.jpg 2017-11-03_161439.jpg
Das ist falch stimt. Bin auch nicht profi. was ich komisch finde ich habe das so benutz bis jetz. Wann habe neue handy mit android 7 dann kamm diese felhler meldung beim instalation.
 
Last edited:

superscope

Member
Licensed User
Longtime User
Hallo klaus,
ich meinte handy betriebsystem mit android 6. Was meinte ich das ist Als Android emulation oder handy mit Android betriebsystem version 6 funktioniert. Wenn du hast emu API 23, da für lust und zeit hast kannst gerne testen. was wundert mich code ist falch aber aber geht..
Aber mit deine code korrektur habe keine probleme mehr...
Gruß
 
Top